python捕获异常时,打印异常的类型、报错文件、与报错所在的行 您所在的位置:网站首页 python所属类型 python捕获异常时,打印异常的类型、报错文件、与报错所在的行

python捕获异常时,打印异常的类型、报错文件、与报错所在的行

2023-09-13 04:37| 来源: 网络整理| 查看: 265

捕获异常

异常的完整代码是:

try: raise Exception("wa") except: print("报错") else: print("没有报错") finally: print("程序关闭")

得到结果:

报错 程序关闭

一般程序里的 try与except是一对,如果没有报错,会执行到else,不论是否有报错,都会执行finally

当异常发生时,会将异常的信息保存到sys.exc_info()这个方法中

官方sys.exc_info()教程:https://docs.python.org/3/library/sys.html#sys.exc_info

使用sys.exc_info()可以得到:

报错类型(返回值位置1)报错信息(返回值位置2)报错信息回溯(返回值位置3)

基于报错信息可以额外得到:

报错的行数报错的文件信息

详情请见【示例代码】

示例代码 import sys import os try: raise RuntimeError('这里有个报错') except Exception as e: except_type, except_value, except_traceback = sys.exc_info() except_file = os.path.split(except_traceback.tb_frame.f_code.co_filename)[1] exc_dict = { "报错类型": except_type, "报错信息": except_value, "报错文件": except_file, "报错行数": except_traceback.tb_lineno, } print(exc_dict)

得到结果:

{ '报错类型': , '报错信息': RuntimeError('这里有个报错'), '报错文件': 'check_except.py', '报错行数': 9 }

如果是完整的流程:

try: print('正常的程序') except: print("报错") else: print("没有报错") finally: print("程序关闭")

得到结果:

正常的程序 没有报错 程序关闭


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有