python 打印完整异常问题

这篇文章主要介绍了python 打印完整异常问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

python打印完整异常

import traceback if __name__ == "__main__": try: print(1/0) except Exception: print(traceback.format_exc())

python异常捕获与打印

为什么要进行异常捕获?

在python程序中如果代码中有异常,不进行异常捕获的话,代码遇到异常就会终止运行,影响程序的健壮性,故要进行异常捕获处理,使得程序遇到不可知的异常,不会终止,在exception代码块中进行异常处理后继续后面的代码执行。

异常捕获是捕获什么?

* 异常类型
* 异常追踪信息
*  异常内容

异常捕获的代码格式?

try:     {content code} except Exception as e:     print("substitude exception,type={},content={}".format(repr(e),e))#y else:     print("code exec correct")#没有遇到异常,可以省略 finally:      print("finnally echo")#无论是否遇到异常都会执行这段内容,先执行exception处理,后执行finally

利用raise自己定义异常并抛出,抛出的异常必须继承一个已有的异常类型,如TypeError(“param must be dict”)

def func3(p):     if type(p)!= dict:         raise TypeError("param must be dict")     else:         print(p) if __name__ == '__main__':  try:     func3("123")  except Exception as e:     print("exception,type={},content={}".format(repr(e),e))  finally:      print("finnally echo")     --------------------     打印结果     exception,type=TypeError('param must be dict'),content=param must be dict finnally echo

打印异常

代码举例:

try:     str2json = json.loads(str)     return jsonpath.jsonpath(str2json,expr) except Exception as e:     cls.logger.info('collectjson exception = {}'.format(str(e)))

repr(e) 打印异常的类型 ,如在json转字符串时,传入一个字符串,那么会抛异常,repr(e)打印的是 JSONDecodeError('Extra data: line 1 column 8 (char 7)',清晰的看出来这个是json转换出了问题

str(e) 打印问题代码的具体问题行

Traceback (most recent call last):
  File "D:/python-workspace/iaminterfaceTest/jsonUtil.py", line 14, in collectjson
    str2json = json.loads(str)
  File "D:\python37\Lib\json\__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "D:\python37\Lib\json\decoder.py", line 340, in decode
    raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 8 (char 7)

常见异常

  • IOError 文件读写异常,一般是文件不存在或者文件不可写入
  • ImportError 无法导入模块或者对象,主要是路径有误或名称错误
  • TypeError 类型转换异常
  • KeyError ditc读取key值不对,一般是不存在这个key值

以上为个人经验,希望能给大家一个参考,也希望大家多多支持0133技术站。

以上就是python 打印完整异常问题的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » python