2024-04-26 03:51:42 发布
网友
如果我有密码:
try: some_method() except Exception, e:
如何获取此异常值(字符串 我的意思是?
Use repr() and The difference between using repr and str
使用^{}:
>>> try: ... print(x) ... except Exception as e: ... print(repr(e)) ... NameError("name 'x' is not defined")
>>> try: ... print(x) ... except Exception as e: ... print(str(e)) ... name 'x' is not defined
尽管我意识到这是一个老问题,但我还是建议使用^{} module来处理异常的输出。
使用traceback.print_exc()将当前异常打印到标准错误,就像它在未捕获时打印一样,或者使用traceback.format_exc()获得与字符串相同的输出。如果要限制输出或将打印重定向到类似文件的对象,可以将各种参数传递给这些函数中的任何一个。
traceback.print_exc()
traceback.format_exc()
使用str
str
try: some_method() except Exception as e: s = str(e)
而且,大多数异常类都有一个args属性。通常,args[0]将是一条错误消息。
args
args[0]
需要注意的是,如果没有错误消息,只使用str将返回一个空字符串,而使用pyfunc建议的repr将至少显示异常的类。我的看法是,如果你打印出来,它是为一个终端用户,不关心什么是类,只是希望一个错误消息。
repr
它实际上取决于您正在处理的异常类以及如何实例化它。你有什么特别的想法吗?
使用^{} :
使用^{} :
尽管我意识到这是一个老问题,但我还是建议使用^{} module 来处理异常的输出。
使用
traceback.print_exc()
将当前异常打印到标准错误,就像它在未捕获时打印一样,或者使用traceback.format_exc()
获得与字符串相同的输出。如果要限制输出或将打印重定向到类似文件的对象,可以将各种参数传递给这些函数中的任何一个。使用
str
而且,大多数异常类都有一个
args
属性。通常,args[0]
将是一条错误消息。需要注意的是,如果没有错误消息,只使用
str
将返回一个空字符串,而使用pyfunc建议的repr
将至少显示异常的类。我的看法是,如果你打印出来,它是为一个终端用户,不关心什么是类,只是希望一个错误消息。它实际上取决于您正在处理的异常类以及如何实例化它。你有什么特别的想法吗?
相关问题 更多 >
编程相关推荐