メッセージでカスタム例外を発生させようとしていますが、メッセージ文字列は文字のタプルとして表示されます。 私のエラークラス:Python例外処理 - 文字列のメッセージで例外が発生しました。文字のリストとして除外されました。
class myError(Exception):
def __init__(self, arg):
self.args = arg
としてみてください - レイズ - 以外の部分:
try:
raise myError('some message.')
except myError, e:
print e.args
これを適切に上げたときに、印刷物: `もちろん
('s', 'o', 'm', 'e', ' ', 'm', 'e', 's', 's', 'a', 'g', 'e', '.', ' ')
は、私は「いくつかのメッセージを望んでいました。 '何が起こっている?
>>> class myError(Exception):
... pass
>>> raise myError('some message.')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
__main__.myError: some message.
[OK]を修正する方法
。私は__init __()を削除しましたが、try-except句を同じにしました。それは印刷します( '何らかのメッセージ。')。 2つの質問 - (1)「args」としてクラスに何もない場合、なぜe.argsを呼び出すことができますか? (2)文字列ではなくタプルを表すe.argsの型を調べました。 __initを削除しても問題が解決しない__() – xpipie
'e.args'の代わりに' str(e) 'を単に印字することもできます – Chaker