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 回答