如何在python中将异常转换为字符串[重复]

Posted

技术标签:

【中文标题】如何在python中将异常转换为字符串[重复]【英文标题】:how to covert an exception to a string in python [duplicate] 【发布时间】:2020-10-27 00:11:18 【问题描述】:

我正在记录我的代码中的任何错误,我尝试过使用:

try:
    #some deliberately dodgy code
Except Exception:
    print(Exception) #i am actually passing this to a function to add it in a file

但我得到的只是:

【问题讨论】:

except Exception as e: ; print(e) 异常是一个类。在 except 子句中,您应该有 Exception as e 才能打印它。 【参考方案1】:
try:
    #some deliberately dodgy code possibly involving pig's head (ask dodgy Dave)
except Exception as exc:
    print(exc)

exc 不是字符串(它是一个异常对象),但print 将调用其__str__ 方法,该方法将返回用于实例化它的消息字符串

(你不需要叫它exc,你可以叫它任何你喜欢的名字,但是exce是相当常用的)

如果你想要变量中的消息,你总是可以明确地做

message = str(exc)  # now it really is a string

except 块内

【讨论】:

【参考方案2】:

Exception是一个类,你应该让一个对象继承自Exception,像这样:

try:
    #some deliberately dodgy code
Except Exception e:
    print(e)

【讨论】:

【参考方案3】:

您实际上是在正确的轨道上,但您的代码应该如下所示。

try:
    #some deliberately dodgy code
except Exception as message:
    print(message)

你可以看看这个帖子,Converting Exception to a string in Python 3,了解更多细节和更深入的了解。

【讨论】:

以上是关于如何在python中将异常转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在python中将数组字符串转换为数组[重复]

如何在Python中将字符串转换为数据框[重复]

如何在Python中将字符串列表转换为字典列表[重复]

如何在python中将单引号字符串转换为数字[重复]

如何在python中将字符串转换为pandas数据框[重复]

如何在Python中将十六进制字符串转换为ObjectId [重复]