12

言い方はよくわかりませんが、Python 3.2で例外を発生させた場合、「\n」は解析されません...

次に例を示します。

class ParserError(Exception):
    def __init__(self, message):
            super().__init__(self, message)

try:
    raise ParserError("This should have\na line break")
except ParserError as err:
    print(err)

それはこのように動作します:

$ ./test.py
(ParserError(...), 'This should have\na line break')

新しい行が新しい行として印刷されるようにするにはどうすればよいですか?

class ParserError(Exception):
    pass

また

print(err.args[1])
4

2 に答える 2

5

ああ、err.messageは2.6で廃止されたので、もう存在しないので...

print(err.args[1])
于 2012-07-17T15:08:37.783 に答える
2

ここで起こっていることはrepr、メッセージ文字列のがExceptionオブジェクト全体をに渡す一部として出力されてprint()いるため、改行がに変換されていること\nです。実際の文字列を個別printに指定すると、実際の改行が出力されます。

于 2012-07-17T15:04:50.563 に答える