python 打印完整异常问题

作者:雪风飞舞 时间:2022-11-04 16:04:11 

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值

来源:https://blog.csdn.net/weixin_45592677/article/details/121354794

标签:python,打印,异常
0
投稿

猜你喜欢

  • python for循环赋值问题

    2023-01-26 05:56:32
  • 一个比较实用的大数据量分页存储过程

    2024-01-13 16:11:29
  • python求平均数、方差、中位数的例子

    2022-08-23 21:24:57
  • python中的__slots__使用示例

    2022-05-09 17:50:56
  • 在任意字符集下正常显示网页的方法二(续)

    2023-11-22 17:36:14
  • python添加命令行参数的详细过程

    2022-03-18 15:34:27
  • python可视化分析的实现(matplotlib、seaborn、ggplot2)

    2021-10-20 13:59:21
  • python利用有道翻译实现"语言翻译器"的功能实例

    2021-08-21 02:47:38
  • python tornado开启多进程的几种方法

    2021-09-18 22:28:17
  • Python 转换RGB颜色值的示例代码

    2022-06-26 22:02:33
  • 页面表达常用方式

    2010-05-27 12:42:00
  • 六种酷炫Python运行进度条效果的实现代码

    2022-06-07 05:22:16
  • PyTorch实现图像识别实战指南

    2022-01-08 14:27:24
  • 取numpy数组的某几行某几列方法

    2022-03-10 02:04:56
  • SQLServer 2008 新增T-SQL 简写语法

    2024-01-28 23:49:25
  • 如何让利用Python+AI使静态图片动起来

    2022-06-06 08:15:31
  • mysql left join的基本用法以及on与where的区别

    2024-01-19 23:08:44
  • 微信昵称带符号导致插入MySQL数据库时出错的解决方案

    2024-01-20 23:40:20
  • Python用5行代码实现批量抠图的示例代码

    2021-04-16 23:56:05
  • Python 使用Opencv实现目标检测与识别的示例代码

    2023-01-23 17:46:11
  • asp之家 网络编程 m.aspxhome.com