以下は私のコードです:
test = 'abc'
if True:
raise test + 'def'
そして、これを実行すると、TypeError
TypeError: exceptions must be old-style classes or derived from BaseException, not str
では、どのようなタイプである必要がありtest
ますか?
発生させる唯一の引数は、発生する例外を示します。これは、例外インスタンスまたは例外クラス (Exception から派生したクラス) のいずれかである必要があります。
これを試して:
test = 'abc'
if True:
raise Exception(test + 'def')
できませんraise
。s だけがstr
dになることができます。Exception
raise
したがって、その文字列を使用して例外を作成し、それを発生させた方がよいでしょう。たとえば、次のことができます。
test = 'abc'
if True:
raise Exception(test + 'def')
また
test = 'abc'
if True:
raise ValueError(test + 'def')
それが役立つことを願っています
それは例外であるべきです。
次のようなことをしたい:
raise RuntimeError(test + 'def')
Python 2.5 以下では、文字列を例外として発生させることが許可されていたため、コードは機能します。これは非常に悪い決定だったので、2.6 で削除されました。