打赏

python异常捕获

python异常捕获

1.常见异常

1.SynataxError:语法错误

2.NameError:试图访问的变量名不存在

3.IndexError:索引错误,使用的所以你不存在,常为索引超出序列范围

4.KeyError:使用了映射中不存在的关键字(键)时引发的关键字错误

5.TypeError:类型错误,内建操作或是函数应于在错误类型的对象时会引发类型错误

6.ValueError:值错误,传给对象的参数类型不正确,例如给int()函数传入了字符串数据类型

7.AttributeError:属性错误,特性引用和赋值失败时会引发属性错误

8.IOError:输入输出错误

2.异常打印

import sys
import traceback

try:
    1/0
except Exception as e:
    # 访问异常的错误编号和详细信息
    print(e.args)
    print(str(e))
    print(repr(e))
    # 打印信息
    exc_type, exc_value, exc_traceback = sys.exc_info() 
    print('e.message:\t', exc_value)
    # 通过trace打印
    print 'traceback.print_exc():'; traceback.print_exc()
    print 'traceback.format_exc():\n%s' % traceback.format_exc()

args:返回异常的错误编号和描述字符串;
str(e):返回异常信息,但不包括异常信息的类型;
repr(e):返回较全的异常信息,包括异常信息的类型。

sys.exc_info() 方法可以获取正在处理的异常信息,即 except 子句正在处理的异常,其返回值为一个tuple类型的三元组(exc_type, exc_value, exc_traceback),其中,exc_type为获取到的异常类型;exc_value为该异常类型对象;exc_traceback为一个 traceback 对象,包含异常最初发生的调用栈信息。

使用traceback.print_exc()打印异常信息到标准错误,或者使用traceback.format_exc()将同样的输出获取为字符串

3.raise用法

Python 允许我们在程序中手动设置异常,使用 raise 语句即可。

raise [exceptionName [(reason)]]

用 [] 括起来的为可选参数,其作用是指定抛出的异常名称,以及异常信息的相关描述。如果可选参数全部省略,则 raise 会把当前错误原样抛出;如果仅省略 (reason),则在抛出异常时,将不附带任何的异常描述信息。

raise 语句有如下三种常用的用法:
raise:单独一个 raise。该语句引发当前上下文中捕获的异常(比如在 except 块中),或默认引发 RuntimeError 异常。
raise 异常类名称:raise 后带一个异常类名称,表示引发执行类型的异常。
raise 异常类名称(描述信息):在引发指定类型的异常的同时,附带异常的描述信息。

相关链接

https://www.cnblogs.com/klchang/p/4635040.html

posted @   苍山落暮  阅读(640)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示