<p>我在Python代码的两个不同位置引发异常:</p>
<pre><code>holeCards = input("Select a hand to play: ")
try:
if len(holeCards) != 4:
raise ValueError(holeCards + ' does not represent a valid hand.')
</code></pre>
<p>和<strong>(编辑以更正升高代码)</strong></p>
^{pr2}$
<p>出于某种原因,第一个输出的字符串与我预期的一样:</p>
<pre><code>ERROR: Amsterdam does not represent a valid hand.
</code></pre>
<p>但是,第二个输出了一些奇怪的集合和字符串的混合体:</p>
<pre><code>ERROR: ('Kr', 'is not a known card.')
</code></pre>
<p>为什么“+”运算符在这两种情况下的行为不同?在</p>
<p><strong>编辑:</strong>对init的调用如下所示:</p>
<pre><code> card1 = PokerCard(cardsStr[0:2])
card2 = PokerCard(cardsStr[2:4])
</code></pre>
<p>这将用一个参数实例化ValueError异常,即您的合并(或添加)字符串:</p>
<pre><code>raise ValueError(holeCards + ' does not represent a valid hand.')
</code></pre>
<p>这将用2个参数实例化ValueError异常,无论卡是什么,以及一个字符串:</p>
^{2}$