如何用Python有效追踪异常(except)信息?
- 内容介绍
- 文章标签
- 相关推荐
本文共计904个文字,预计阅读时间需要4分钟。
pythondef test(): sum=3 / 0 if __name__=='__main__': test()错误提示:无法确定错误原因,可能是因为除以零的操作。
看下面这个函数
def test(): sum = 3/0 if __name__ == '__main__': test()
除0肯定是不对的,会引发一个except,内容如下:
File "E:\Src\dongsheng\TestPython\testtrace_back.py", line 23, in <module>
test()
File "E:\Src\dongsheng\TestPython\testtrace_back.py", line 19, in test
sum = 3/0
ZeroDivisionError: integer division or modulo by zero
上面的提示,是在IDE中运行时出现的,实际在线上运行脚本时,一般会用nohup 方式启动,输出内容会写入到nohup.out文件中,但这个文件里的内容可能非常多,很杂乱,不利于异常的排查。
python 提供了traceback ,可以完美的输出except发生时的信息,就和上面的内容一样,而且可以输入到指定的文件之中,所以,不妨写一个装饰器,修饰那些需要监督的函数,当他们发生异常时,记录下有关异常的信息。
本文共计904个文字,预计阅读时间需要4分钟。
pythondef test(): sum=3 / 0 if __name__=='__main__': test()错误提示:无法确定错误原因,可能是因为除以零的操作。
看下面这个函数
def test(): sum = 3/0 if __name__ == '__main__': test()
除0肯定是不对的,会引发一个except,内容如下:
File "E:\Src\dongsheng\TestPython\testtrace_back.py", line 23, in <module>
test()
File "E:\Src\dongsheng\TestPython\testtrace_back.py", line 19, in test
sum = 3/0
ZeroDivisionError: integer division or modulo by zero
上面的提示,是在IDE中运行时出现的,实际在线上运行脚本时,一般会用nohup 方式启动,输出内容会写入到nohup.out文件中,但这个文件里的内容可能非常多,很杂乱,不利于异常的排查。
python 提供了traceback ,可以完美的输出except发生时的信息,就和上面的内容一样,而且可以输入到指定的文件之中,所以,不妨写一个装饰器,修饰那些需要监督的函数,当他们发生异常时,记录下有关异常的信息。

