一.08异常

阅读: 评论:0

一.08异常

一.08异常

一.Python异常类

NameError 尝试访问一个没有申明的变量
ZeroDivisionError 除数为0
SyntaxError 语法错误
IndexError 索引超出序列范围
KeyError 请求一个不存在的字典关键字
IOError 输入输出错误(比如你要读的文件不存在)
AttributeError 尝试访问未知的对象属性
ValueError 传给函数的参数类型不正确,比如给int()函数传入字符串形

二.捕获异常

try:  try_suite  
except Exception1,Exception2,...,Argument:  exception_suite  
......   #other exception block  
else:  no_exceptions_detected_suite  
finally:  always_execute_suite  

try…except…语句
try捕获了任何异常,都将交给except子句的exception block来处理
try … except…else语句
就是当没有检测到异常的时候,则执行else语句
finally子句
finally子句是无论是否检测到异常,都会执行的一段代码。我们可以丢掉except子句和else子句,单独使用try…finally,也可以配合except等使用。

三.两个特殊的处理异常的简便方法

1.断言(assert)

assert语句用于检测表达式是否为真,如果为假,引发AssertionError错误;
语法格式:assert expression [,args]
expression:表达式
args:判断条件的描述信息

2.上下文管理(with语句)

with open(r'somefileName') as somefile:for line in somefile:print line# ...more code

四.抛出异常(raise)

#!/usr/bin/python
# -*- coding: UTF-8 -*-# 定义函数
def mye( level ):if level < 1:raise Exception("Invalid level!", level)# 触发异常后,后面的代码就不会再执行try:mye(0)                // 触发异常
except "Invalid level!":print 1
else:print 2
#输出结果
$ python test.py 
Traceback (most recent call last):File "test.py", line 11, in <module>mye(0)File "test.py", line 7, in myeraise Exception("Invalid level!", level)
Exception: ('Invalid level!', 0)

本文发布于:2024-02-01 04:10:10,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170673181133756.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:异常
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23