python--traceback模块
Posted traditional
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python--traceback模块相关的知识,希望对你有一定的参考价值。
#!/usr/bin/env python # -*- coding:utf-8 -*- # author:love_cat # 异常处理在python中已经屡见不鲜了,我们不仅可以处理异常,也可以将异常打印出来. try: print(a) # 显然a没有被定义 except Exception as e: print(e) # 程序的输出结果如下 ‘‘‘ name ‘a‘ is not defined ‘‘‘ # 但仅仅如此,我们却不知道程序在什么地方报的错 # 当我们不使用try语句时,解释器会给我们报出很详细的错误,但此时程序也崩溃了 # 如何在保证程序不崩溃的前提下,获取详细的错误信息呢? # 这时候,可以使用traceback模块下的方法 import traceback try: print(a) # a依旧没有被定义 except Exception as e: traceback.print_exc() print(‘古明地盆‘) # 程序输出结果如下 ‘‘‘ Traceback (most recent call last): File "F:/satori/python--traceback/异常处理.py", line 22, in <module> print(a) # a依旧没有被定义 NameError: name ‘a‘ is not defined 古明地盆 ‘‘‘ # 可以看出来这和程序崩溃时,解释器报出的错误是一致的,但我们下面的字符串还是被打印了出来 # 除了traceback.print_exc()之外,还可以使用traceback.format_exc() # 区别是traceback.print_exc()报出的错误的形式跟程序崩溃时一模一样,连字体颜色也是红色,咋一看会真的以为程序报错 # 但traceback.format_exc()则是以字符串的形式返回,但需要加上print try: print(a) # a依旧没有被定义 except Exception as e: print(traceback.format_exc()) # 程序输出结果如下 ‘‘‘ Traceback (most recent call last): File "F:/satori/python--traceback/异常处理.py", line 39, in <module> print(a) # a依旧没有被定义 NameError: name ‘a‘ is not defined ‘‘‘ # 虽然看起来和上面没有区别,但后者是以字符串返回的,没有红红的字体。 # 此外traceback.print_exc()还可以将错误信息写到文件当中 try: print(a) # a依旧没有被定义 except Exception as e: traceback.print_exc(file=open(‘traceback.txt‘,‘w‘,encoding=‘utf-8‘)) # 可以看到新出现了traceback.txt文件,打开文件可以看到如下信息 ‘‘‘ Traceback (most recent call last): File "F:/satori/python--traceback/异常处理.py", line 52, in <module> print(a) # a依旧没有被定义 NameError: name ‘a‘ is not defined ‘‘‘
以上是关于python--traceback模块的主要内容,如果未能解决你的问题,请参考以下文章
如何使用模块化代码片段中的LeakCanary检测内存泄漏?
CTS测试CtsWindowManagerDeviceTestCases模块的testShowWhenLockedImeActivityAndShowSoftInput测试fail项解决方法(代码片段