首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python 输出详细的异常信息(traceback)方式

问题描述 为了程序的正常运行,进行异常处理是有必要的,甚至于有时候,我们会主动的抛出异常,然后让程序进行异常捕获,再进行进一步的处理。...我们还可以通过traceback,获得异常的名称,用于根据异常名称进行异常捕获,例如,我们直接运行一段程序,并没有打印出来异常的名字,这样我们无法通过异常名对异常进行捕获,因此,我们可以通过traceback...如上图,我们无法获得异常名,下图展示traceback获得异常名: ?...从上图我们可以看到,我们无法通过args获取异常名,但是可以通过traceback获取 补充知识:python 输出完成异常信息 如下所示: import traceback try: 1/0...() 还可以接受file参数直接写入到一个文件 还可以将信息写入到文件 traceback.print_exc(file=open(‘error.txt’,’a+’)) 以上这篇Python 输出详细的异常信息

14.3K20
您找到你想要的搜索结果了吗?
是的
没有找到

Python程序的输出异常信息自动写入文件

一般情况下,Python的内置函数print()会把数据输出到标准控制台,也就是屏幕,当然这可以通过为print()函数传递file参数来改变。...如果代码执行过程中出现了异常异常信息也会默认显示在屏幕上。...在sys模块中,stderr用来表示标准错误输出去向,stdout表示标准输出去向,通过修改这两个值,可以实现把程序的错误输出和标准输出的内容都写入文件。...把下面的代码保存为test.py,然后切换至命令提示符环境,使用python test.py命令运行该程序,然后检查test.py所在文件夹中新生成的文件output.txt中的内容。...在IDLE或其他Python开发环境中直接运行该程序,检查output.txt文件的内容。分析两种运行方式的区别。 ?

2.4K10

异常--python异常处理

except IOError: print "Error: 没有找到文件或读取文件失败" else: print "内容写入文件成功" fh.close() 以上程序输出结果: $ python test.py...finally: print "Error: 没有找到文件或读取文件失败" 如果打开的文件没有可写权限,输出如下所示: $ python test.py Error: 没有找到文件或读取文件失败 同样的例子也可以写成如下方式...finally块中的所有语句执行后,异常被再次触发,并执行except块代码。 参数的内容不同于异常异常的参数 一个异常可以带上参数,可作为输出异常信息参数。...: print 1 else: print 2 执行以上代码,输出结果为: $ python test.py Traceback (most recent call last): File "test.py...以下为与RuntimeError相关的实例,实例中创建了一个类,基类为RuntimeError,用于在异常触发时输出更多的信息。

2.7K20

Python异常处理 ① ( 异常概念 | 异常处理 | 异常捕获 )

一、Python 异常简介 1、异常概念 Python 异常 是在程序运行过程中发生的错误或问题的表示 ; 出现异常可能会中断程序的正常执行流程 , 并引发一个异常对象 ; 此时 , 需要 捕获和处理...异常对象 , 以防止程序崩溃或引发更严重的错误 ; 2、Python 异常示例 在之前的博客中介绍了文件操作 , 如果以只读的形式打开不存在的文件 , 就会导致异常的出现 ; 出现异常代码 : """...: /Users/zyq/PycharmProjects/Hello/venv/bin/python /Users/zyq/PycharmProjects/Hello/main.py Traceback...FileNotFoundError: [Errno 2] No such file or directory: 'file3.txt' Process finished with exit code 1 二、Python.../python /Users/zyq/PycharmProjects/Hello/main.py 出现异常, 进行异常处理 Process finished with exit code 0

16410

Python异常

什么是异常? Exception是程序遇到无法处理的问题了。异常会导致程序终止。所以我们需要提前捕获异常,并给出遇到异常的处理方案,这样程序就可以继续继续执行了。 Python如何捕获异常?...e: print("可能是除0异常,也可能是变量名不存在异常 ") print(e) # 输出name 'nameA' is not defined 异常不在指定范围内,直接抛出异常...,也可能是变量名不存在异常 ") print(e) # 输出name 'nameA' is not defined 捕获所有的异常 捕获全部异常(写法一):获取不到异常信息 try: print...raise Python 允许手动抛出异常。...您可以使用 raise 关键字来引发异常,并指定要引发的异常类型 raise ZeroDivisionError("除数不能为零") Python 异常传递性 Python异常跟Java的异常一样,都具有传递性

13010

Python异常

一.Python的运行时错误称作异常 语法错误:软件的结构上有错误而导致不能被解释器解释或不能被编译器编译 逻辑错误:由于不完整或不合法的输入所致,也可能是逻辑无法生成、计算或者输出结果需要的过程无法执行等...Python异常是一个对象,表示错误或意外情况 Python检测到一个错误时,将触发一个异常 1.Python可以通过异常传道机制传递一个异常对象,发出一个一场情况出现的信号 2.程序员也可以在代码中手动触发异常...Python异常也可以理解为:程序出现了错误而在正常控制意外采取的行为 第一阶段:解释器触发异常,此时当前程序流将被打断 第二阶段:异常处理,如忽略非致命错误、减轻错误带来的影响等 二、异常的公用 1...Python异常是内置的经典类Exception的子类的实例 为了向后兼容,Python还允许使用字符串或任何经典类实例 Python2.5之后,Exception是BaseException继承的新式子类...Python自身引发的所有异常都是Exception的子类实例 大多的标准异常都是由StandardError派生的,其有3个抽象的子类 ArithmeticError 由于算术错误而引发的异常基类

2.4K90

Python异常

异常是一个事件,该事件会在程序执行过程中发生,将影响程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常异常Python对象,表示一个错误。...当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 异常处理   Python中捕捉异常可以使用try/except语句。...AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败...finally:    print 'Program end'     运行结果: Write content successful Program end   上面程序中IOError是用于文件操作输入\输出失败异常类...(1)如果当try后的语句执行时发生异常python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常); (2)如果在try

83710

Python抛出异常_python抛出异常的作用

python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误 AttributeError #试图访问一个对象没有的树形...单分支只能用来处理指定的异常情况,如果未捕获到异常,则报错 try: abc() except ValueError: print('异常输出') except IndexError:...print('异常输出') # Exception 属性可以捕获任意异常,不过它是一把双刃剑,有利有弊,我们要视情况使用 try: abc() except Exception as...当发生异常Python会回溯异常,给出大量的提示,可能会给程序员的定位和纠错带来一定的困难,这是可以使用sys模块回溯最近一次异常。...try: raise Networkerror() # raise 出这个异常 except Networkerror as e: print(e) """ 输出: 这是一个异常说明!

2.5K70

python的标准输入,输出,错误输出

1:标准输入:     python中的sys模块有标准输入,标准输出,以及标准错误输出的方法。 #!.../usr/bin/env python #coding:utf-8   #添加中文输出 import sys fd = sys.stdin  #程序等待输入 data = fd.read()  #把输入的值赋给变量...print data, #print data  #也可以借助于print函数来输出,print函数的输出默认的结果时多带一个换行符的,若想去掉换行符可以在左后面加一个>逗号 输出结果如下: [root...@lianxi1 Day01]# python Day01.py  wer rew wer       #标准输出的结果 rew wer        #print的输出 rew 2:从标准输入统计输入的行数...Day01]# python -u Day05.py  | cat -#‘-’是对输出流用cat来处理 str:0 str:1 str:2 str:3 str:4 str:5 str:6 str:7 str

3.6K40

python抛出异常和捕获异常_python自定义异常

主动抛异常 1. 抛异常 有时,程序需要主动抛出异常,因为某些情况下,你需要反馈消息给更上层的调用者,告诉它有一些异常情况发生,而你抛出异常的地方,没有能力处理它,因此需要向上抛出异常。...这种情况为什么不让系统自己抛出异常呢?...一个原因是上层的调用者本身就希望能够捕获有别于系统异常的自定义异常,二来,有些情况下,程序的逻辑是没有异常的,但是,从业务角度考虑,的确是一个不寻常的情况,因此需要我们主动抛出异常。...‘__main__’: divide(10, 5) divide(10, 0) 抛出异常时,你可以指定抛出哪个异常,如果你不想指定,那么可以抛出异常Exception, 它是所有异常的父类 def divide...自定义异常类 在程序里引入自定义的异常类,可以让代码更具可读性,同时对异常的划分更加精细,那么在处理异常时也就更加具有针对性,自定义异常继承自Exception,或者那些类本身就继承自Exception

92320
领券