我想处理来自异常的错误消息,但似乎无法将其转换为字符串。我已经阅读了os库手册页,但有些东西没有点击给我。
打印错误有效:
try:
os.open("test.txt", os.O_RDONLY)
except OSError as err:
print ("I got this error: ", err)
但这不是:
try:
os.open("test.txt", os.O_RDONLY)
except OSError as err:
print ("I got this error: " + err)
TypeError: Can't convert 'FileNotFoundError' object to str implicitly
答案 0 :(得分:18)
所有非关键字参数都转换为字符串,如str(),并写入流
因此,在第一种情况下,您的错误由print
内置转换为字符串,而当您尝试将错误连接到字符串时,不会发生此类转换。因此,要复制将消息和错误作为单独参数传递的行为,您必须将错误转换为str()
的字符串。
答案 1 :(得分:16)
根据我的经验,你想要的是repr(err)
,它将返回异常类型和消息。
str(err)
仅提供消息。