python 异常回溯_Python 代码的异常处理和打印异常信息
前言
1、Python的异常处理可以向用户准确反馈出错信息,所有异常都是基类Exception的子类。自定义异常都是从基类Exception中继承。Python自动将所有内建的异常放到内建命名空间中,所以程序不必导入exceptions模块即可使用异常。
2、需要查看详细的错误信息需导入import traceback模块
捕获异常的方式
方法一:捕获所有的异常
try:
1/0
except Exception:
print (Exception)
"""输出异常类"""
方法二:采用traceback模块查看异常,需要导入traceback模块,这个方法会打印出异常代码的行号
try:
1/0
except:
traceback.print_exc()
"""输出:
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/demo04.py", line 123, in
1/0
ZeroDivisionError: division by zero
"""
方法三:采用sys模块回溯最后的异常
try:
1/0
except:
info = sys.exc_info()
print(info)
print(info[0])
print(info[1])
"""输出
(, ZeroDivisionError('division by zero',), )
division by zero
"""
获取函数名和行号
上面介绍的方法二回打印出问题代码的行号,还有一些方法可以获取函数名和行号
import sys
def get_cur_info():
"""Return the frame object for the caller's stack frame."""
try:
raise Exception
except:
f = sys.exc_info()[2].tb_frame.f_back
return (f.f_code.co_name, f.f_lineno)
def callfunc():
print(get_cur_info())
if __name__ == '__main__':
callfunc()
"""输出:
('callfunc', 131)
"""
import sys
def get_cur_info():
# 获取当前函数名
print(sys._getframe().f_code.co_name)
# 获取调用函数名(A调用B函数,获取A的函数名)
print(sys._getframe().f_back.f_code.co_name)
get_cur_info()
"""输出:
get_cur_info
"""
python 异常回溯_Python 代码的异常处理和打印异常信息相关推荐
- python Intel Real Sense D435 异常检测与抛出(获取/打印异常详细信息 traceback.print_exc())
文章目录 背景描述 首先熟悉一下python异常处理的几个关键字 摄像头USB断开异常 获取异常详细信息 背景描述 在摄像头运行的时候,有时候会遇到一些错误,比如帧传输错误引起的程序结束, 但更为严重 ...
- Java 异常处理(标准抛异常、异常处理、多异常、Finally、多线程异常处理、获取异常的堆栈信息、链试异常、自定义异常)
使用 catch 处理异常(标准抛异常) public class Main {public static void main (String args[]) {int array[]={20,20, ...
- python 爬取_Python爬虫爬取马蜂窝北京景点信息
背景 来北京有些日子了,但是每个周末都窝在六环外的村里躺着.想想不能再这么浪费时间了,得出去玩!但是去哪玩呢?于是乎想着,先把北京的景点以及位置都保存起来,然后在分析分析做个出行计划.从哪里获取景点信 ...
- python 打印的异常回溯和代码不对应
正在运行的程序没有停止 又重新install了导致site-packages里的代码改变 正在运行的是老代码, 当出现异常时打印的行数是老代码,但显示的行的内容时新代码 转载于:https://www ...
- python queue 调试_Python:Queue.Empty异常处理
在与某人就Python中的异常处理(由队列对象的处理引发)进行了一次简短的辩论之后,我想我应该把它扔掉... 方法1:import Queue q = Queue.Queue() try: task= ...
- 打包python程序发布_Python代码的打包与发布详解
在python程序中,一个.py文件被当作一个模块,在各个模块中定义了不同的函数.当我们要使用某一个模块中的某一个函数时,首先须将这个模块导入,否则就会出现函数未定义的情况. 下面记录的是打包及安装包 ...
- python居中填充_Python代码中 如何将字符串填充为指定长度并保持原字符串居中呢?...
摘要: 下文讲述Python代码中字符串填充的方法分享,如下所示: 字符串填充有很多方法, 如for循环填充,while循环填充 那么Python语言中,到底有没有快捷方式对字符串进行填充呢? 下文将 ...
- python linux 优化_Python 代码性能优化技巧
Python 性能优化除了改进算法,选用合适的数据结构之外,还有几种关键的技术,比如将关键 python 代码部分重写成 C 扩展模块,或者选用在性能上更为优化的解释器等,这些在本文中统称为优化工具. ...
- python重构函数_Python代码重构
代码重构是一件非常辛苦却非常有意义的事情,代码重构的原因在于: 1.代码过于冗余.沉余 2.代码过于耦合 3.代码过于复杂 4.接口调用超出三层 这次重构主要在于架构问题,自己没有画出实现整个项目的功 ...
最新文章
- 分布式锁用Redis好?还是Zookeeper好?
- Android中的ListView实现图片文字和按钮
- 后盾网lavarel视频项目---3、lavarel中子控制器继承父控制器以判断是否登录
- 【NOIP2013模拟】黑魔法师之门
- Python_Tips[1] - 利用 Python 的字典实现 Switch 功能
- 将ALV GRID中改变的值更新到ALV内表中
- android 自动打包脚本,Jenkins实现Android自动化打包
- WebIDE discovery when destination is selected from dropdown list
- python提取excel数据视频_Python-爬取b站的热门视频并导入Excel中
- winXP 下安装python3.3.2
- 国产数据库年终大盘点!
- Android-7.0-Nuplayer概述
- java基础学习(4)
- 实战项目——编辑器实现C#/C++可视化编程#WinFrom
- 浙大pintia答案c语言,浙大版《C语言程序设计(第3版)》题目集 - 学习笔记 - 编程题 - 习题3-3 出租车计价...
- 论文笔记 Inverting Visual Representations with Convolutional Networks
- 社交app的变现方式有哪些?
- 怎样和控制欲很强的家人相处-不受他人影响
- 李沐的深度学习笔记来了!
- 简述linux操作系统的功能是什么,什么是Linux操作系统及其功能
热门文章
- 【产品】PRD需求文档:云迹扶教(公益支教APP)
- HDU-1811-Rank of Tetris
- 勇士挂机 鸿蒙,勇士挂机战士攻略
- 微信开发--微信公众号相关配置--添加子管理员
- python基础教程 excel_Python新手入门:Excel基本操作(二)
- Windows命令行cmd之cd命令用法
- 创米数联创业板IPO被终止:曾拟募资6.44亿 小米是重要股东
- 大学计算机平面设计教学实施报告,设计课程论文,关于高校平面设计课程CoreIDRAW图形设计的教学改革相关参考文献资料-免费论文范文...
- 软件测试工程师——写给工作三年以内的你
- mcbbs mysql数据库_我的世界服务器CMI - 多功能基础插件 - 永久更新