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


猜你喜欢
- 1、什么是AspJpeg?AspJpeg是一款功能强大的基于Microsoft IIS环境的图片处理组件,AspJpeg可以使用很少的代码在
- 本文实例分析了Go语言多值替换的HTML模板用法。分享给大家供大家参考。具体如下:这里通过两种方式提供基于HTML模板的多变量值替换。另外附
- 本文实例讲述了Golang算法之田忌赛马问题实现方法。分享给大家供大家参考,具体如下:【田忌赛马问题】输入:输入有多组测试数据。 每组测试数
- 使用pandas读xlsx文件读取前n行数据读取指定数据(指定行指定列)获取文件行号和列标题将数据转换为字典形式import pandas
- 1.下载 Microsoft SQL Server 2019 Red Hat 存储库配置文件:#curl -o /etc/yum.repos
- 本文实例为大家分享了Python制作简易计算器的具体代码,供大家参考,具体内容如下简易计算器简易计算器功能:实现输入,计算,输出功能;可以计
- python 换位密码算法的实例详解一前言:换位密码基本原理:先把明文按照固定长度进行分组,然后对每一组的字符进行换位操作,从而
- 注释注释就是对代码的解释和说明。目的是为了让别人和自己很容易看懂。为了让别人一看就知道这段代码是做什么用的。正确的程序注释一般包括序言性注释
- 使用phpmyadmin或者navicat链接数据库时提示【客户端软件无法连接localhost】经检查发现是IPV6地址监听了3306端口
- 本文实例讲述了js实现适用于素材网站的黑色多级菜单导航条效果。分享给大家供大家参考。具体如下:这是一款适用于素材网站的黑色多级菜单导航条,无
- 具体特征如下: 1、通过模板实现俄文正常。 2、通过后台数据库生成的静态俄文信息,后台显示正常, 前台乱码。 3、英文正常。 和该主题相关的
- 1. 问题使用PyCharm 创建完Django 项目 想登录admin 页面 却不知道用户名和密码。 用的默认sqlit2.解决办法2.1
- Windows10平台下MySQL的安装、配置、启动和登录及配置环境变量1.1 在MySQL的官网上下载安装文件并配置MySQL提示:在安装
- 1.使用Management Studio Express,用“Windows身份验证”登录,选中SQL服务器名,右击鼠标选择属性,在服务器
- 废话不多说了,直接给大家贴代码了,具体代码如下所示:// ----ajax begin $.ajax({type: "
- 之前在《首都机场的点烟器》中分析了一个软件系统所处的状态并且列举了不同的状态所需要的展示给用户的各类信息,我们先简单回顾一下:要设计一个软件
- 1.介绍 现在的网站随着访问量的增加,单一服务器无法承担巨大的访问量,有没有什么方便快捷的方式解决这个问题呢,答案是”有”!比如建立服务器群
- 数据可视化是一种将庞杂抽象的数据转化为直观易懂的图形的数据呈现技术,它能帮助我们快速把握数据的分布和规律,更加轻松地理解和探索信息。在当今这
- mulLine = """Hello!!! Wellcome to Python's world! T
- MySQL中可以使用rename table这个SQL语句来修改表名。rename table这个SQL语句来修改表名的基本语法是:RENA