0
raise文の後にTrue Valueを返す必要があります。ここで私は文を立てる必要がありますし、真の値を返す必要があります。 finally文を使用すると、例外ブロックが発生しません。最後に使用しないと例外ブロックがraise文で実行され、その後はretcodecmd変数を使用できなくなります。 Pythonでのマイコードの下:raise文の後に戻ることができます
try:
something....
except ValueError:
self._retcodecmd = True
raise SomeException(something)
finally:
if self._retcodecmd is True:
return True
else:
return False
このような状況では、エラーを発生させる必要があり、エラーを発生させた後に他の機能を実行する必要があります。 –
@PranjayKaparuwan:おそらくあなたの戻り値はあまりにも制限されていますか?あなたは 'raise'と' return'を行うことはできませんが、複数の値を返すことができます。最初のものは現在使用しているものと同じで、2つ目は例外が発生した場合 'return True、sys.exc_info() ==(None、None、None) 'などと似ていますが、文脈に適しています。しかし、根本的に、例外と返品は、私が知っているすべての言語で相互に排他的です。例外パスをたどっている場合は、例外伝播をキャンセルせずにリターンパスに従うことはできません。その逆もあります。 – ShadowRanger
@PranjayKaparuwan>あなたの 'finally'節で' return'しないでください。そしてエラーが発生すると、finally節が実行され、エラーが発生します。 – spectras