【python异常捕获】traceback.print_exc()打印异常的堆栈跟踪信息

2024-04-28 05:52

本文主要是介绍【python异常捕获】traceback.print_exc()打印异常的堆栈跟踪信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

单个函数调用

在代码中使用 traceback.print_exc() 时,可以将打印异常的堆栈跟踪信息,包括异常类型、异常消息和代码中引发异常的位置。以下是一个简单的示例:

import tracebackdef divide(x, y):try:result = x / yreturn resultexcept Exception as e:traceback.print_exc()result = divide(10, 0)
print("Result:", result)

由于尝试除以零会引发异常,traceback.print_exc() 将打印异常信息。示例输出如下:

Traceback (most recent call last):File "example.py", line 7, in divideresult = x / y
ZeroDivisionError: division by zero

多个函数调用

多个函数调用引发异常时 traceback.print_exc() 的使用:

import tracebackdef divide(x, y):result = x / yreturn resultdef calculate():try:result = divide(10, 0)print("Result:", result)except Exception as e:traceback.print_exc()def main():try:calculate()except Exception as e:traceback.print_exc()if __name__ == "__main__":main()

在示例中,main() 函数调用了 calculate() 函数,而 calculate() 函数又调用了 divide() 函数。当 divide() 函数尝试除以零时,会引发 ZeroDivisionError 异常。然后,calculate() 函数捕获了该异常并使用 traceback.print_exc() 打印异常堆栈信息。最后,main() 函数也可能捕获异常并打印堆栈信息。

示例输出如下:

Traceback (most recent call last):File "example.py", line 13, in calculateresult = divide(10, 0)File "example.py", line 5, in divideresult = x / y
ZeroDivisionError: division by zero

这样就可以看到异常的完整堆栈跟踪,从而更好地理解异常发生的位置和原因。

这篇关于【python异常捕获】traceback.print_exc()打印异常的堆栈跟踪信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942448

相关文章

ICode国际青少年编程竞赛- Python-5级训练场-函数练习2

ICode国际青少年编程竞赛- Python-5级训练场-函数练习2 1、 def get_item(a):Spaceship.step(1)Dev.step(a)Dev.turnLeft()Dev.step(1)Spaceship.step(1)Dev.turnRight()Dev.step(-a)Spaceship.step(1)get_item(3)get_item(

Python使用minIO上传下载

前提 VSCode + Python3.9 minIO有Python的例子 1.python生成临时文件 2.写入一些数据 3.上传到minIO 4.获取分享出连接 5.发出通知 # 创建一个客户端minioClient = Minio(endpoint = 'xx',access_key='xx',secret_key='xx',secure=False)# 生成文件名curre

obb iou计算,旋转框iou,python和c++版本

python版本 import math#包围盒转化为角点def rbbox_to_corners(rbbox):# generate clockwise corners and rotate it clockwise# 顺时针方向返回角点位置cx, cy, x_d, y_d, angle = rbboxa_cos = math.cos(angle)a_sin = math.sin(angl

(python)cryptography-安全的加密

前言         cryptography 是一个广泛使用的 Python 加密库,提供了各种加密、哈希和签名算法的实现。它支持多种加密算法,如 AES、RSA、ECC 等,以及哈希函数(如 SHA-256、SHA-384 等)和数字签名算法(如 DSA、ECDSA 等). 目录 常见用途 密码学函数 主要功能 优点 缺点 总结 常见用途 数据加密 使用对

从ROS到数据库:用Python将ROS话题消息保存到数据库

观前提醒:本博客介绍如何使用Python订阅ROS话题,并将接收到的消息保存到SQL数据库中,包括MySQL和SQL Server两种情况。 使用Python订阅ROS话题并将消息保存至MySQL数据库 下面我们将详细介绍如何使用Python订阅ROS话题,并将接收的数据保存到MySQL数据库中。这种技术可以用于机器人数据的记录、分析和回放。 第一步:安装Python依赖库 我们将使用ro

打印post过来的xml数据计入日志

var_export — 输出或返回一个变量的字符串表示 此函数返回关于传递给该函数的变量的结构信息,它和 var_dump() 类似,不同的是其返回的表示是合法的 PHP 代码。 您可以通过将函数的第二个参数设置为 TRUE,从而返回变量的表示。 $a = var_export($array,true) 将变量打印出来包括类型记录下来 然后输出,常用于记录日志 array ( 0 => 1

python dict赋值时有逗号自动变成元组 关于str去除\转义replace用\\

webpack 查找n.m时用的加载器是页面上调用的,因为赋值了s等于加载器 s(‘8536’) s.m[‘8536’] `headers['Cookie'] = f'_m_h5_tk={cookie_list[0]}; _m_h5_tk_enc={cookie_list[1]}'`{'accept': '*/*', 'accept-language': 'zh-CN,zh;q=0.9', 'c

【Python-图结构准备】“pickled object“、 调整邻接矩阵使其对称、图加自环 图邻接矩阵归一化、稀疏邻接矩阵格式转换

引言:python代码学习,本博客对python的"pickled object" (腌制对象,也叫序列化对象), 调整邻接矩阵使其对称、图加自环 & 图邻接矩阵归一化、稀疏邻接矩阵格式转换从代码实现的角度进行介绍。我们先引入一段代码,通过这段代码来解释相应的知识点。 with open('data/' + args.dataset + '_mean_' + args.diffusion_mod

使用ffserver实现转发实时流媒体(摄像头捕获)

本系统为ubuntu 10.04LTS 说明1:本实验在本机成功测试通过; 说明2:本实验仅仅测试了视频流,未测试音频流。 1、配置ffserver.conf -----------------------------ffserver.conf----------------------------start Port 8090 BindAddress 0.0.0.

Dubbo全局处理业务异常 (自定义dubbo异常过滤器)

自定义dubbo异常过滤器 一、前置问题介绍:问题一问题二 二、Dubbo的异常过滤器源码如下:三、实现方案 - 重写Dubbo的Filter异常过滤器至此,Dubbo自定义异常过滤器已完结! 一、前置问题介绍: 问题一 在dubbo框架中,由于一些 interface 接口未显示的声明抛出异常,导致dubbo在捕获异常时发现抛出的异常为非声明的异常,其也不属于jdk的异常,则