python异常处理中不会⽤到的关键字是_python异常处理
(⼀)
Python的异常处理能⼒是很强⼤的,可向⽤户准确反馈出错信息。在Python中,异常也是对象,可对它进⾏操作。所有异常都是基类Exception的成员。所有异常都从基类Exception继承,⽽且都在exceptions模块中定义。Python⾃动将所有异常名称放在内建命名空间中,所以程序不必导⼊exceptions模块即可使⽤异常。Python⽤异常对象(exception object)表⽰异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会⽤所谓的回溯(Traceback,⼀种错误信息)终⽌执⾏。
注意:虽然⼤多数错误会导致异常,但⼀个异常不⼀定代表错误,有时候它们只是⼀个警告,有时候它们可能是⼀个终⽌信号,⽐如退出循环等。
⼀.与python异常相关的关键字
raise:⼿动抛出/引发异常:raise [exception[,data]
try/except:捕获异常并处理
pass:忽略异常
as:定义异常实例(except IOError as e)
finally:⽆论是否出现异常,都执⾏的代码]
else:如果try中的语句没有引发异常,则执⾏else中的语句
except Exception as error:
⼆.python中的异常类型
1.StandardError类:如果程序上出现逻辑错误, 将引发该异常。StandardError类是所有内敛异常的基类,放置在默认的命名空间中,因此使⽤IOEroor, EOFError, ImportError等类,不需要导⼊exception模块。
StopIteration类:判断循环是否执⾏到尾部,如果循环到尾部,则抛出该异常。
GeneratorExit类:是由Generator函数引发的异常,当调⽤close()时引发该异常。
Warning类:表⽰程序中的代码引起的警告。
三.基本⽅式:
<:
语句1
except [exception1(,),[data…]]:
语句2
else:
语句3
该种异常处理语法的规则是:
· 执⾏try下的语句,如果引发异常,则执⾏过程会跳到第⼀个except语句。
· 如果第⼀个except中定义的异常与引发的异常匹配,则执⾏该except中的语句。
· 如果引发的异常不匹配第⼀个except,则会搜索第⼆个except,允许编写的except数量没有限制。
· 如果所有的except都不匹配,则异常会传递到下⼀个调⽤本代码的最⾼层try代码中。
·
如果没有发⽣异常,则执⾏else块代码。
import traceback
try:
1/0
except Exception as err:
print(err)python的try和except用法
try:
f = open("","r")
except IOError as e:
print(e)
try:
f = open("","r")
except Exception as e:
print(e)
最后两个的输出是⼀模⼀样的---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<:
语句1
finally:
语句2
该语句的执⾏规则是:
· 执⾏try下的代码。
· 如果发⽣异常,在该异常传递到下⼀级try时,执⾏finally中的代码。
· 如果没有发⽣异常,则执⾏finally中的代码。
第⼆种try语法在⽆论有没有发⽣异常都要执⾏代码的情况下是很有⽤的。例如我们在python中打开⼀个⽂件进⾏读写操作,我在操作过程中不管是否出现异常,最终都是要把该⽂件关闭的。这两种形式相互冲突,使⽤了⼀种就不允许使⽤另⼀种,⽽功能⼜各异
所以,⼀般情况下,finally⾥⾯执⾏的都是⼀些清理⼯作,⽐如:关闭⽂件描述符,释放锁等
注意,finally中,如果出现异常,外部如果没有相应的捕获机制,该异常会层层抛出,直到最顶端,然后解释器停⽌。⼀般在外层再加⼀次try except异常捕获
三.⼿动使⽤raise引发异常
1.raise [exception[,data]]
2.在Python中,要想引发异常,最简单的形式就是输⼊关键字raise,后跟要引发的异常的名称。异常名称标识出具体的类:Python异常是那些类的对象。执⾏raise语句时,Python会创建指定的异常类的⼀个对象。raise语句还可指定对异常对象进⾏初始化的参数。为此,请在异常类的名称后添加⼀个逗号以及指定的参数(或者由参数构成的⼀个元组)。
3.实例:
try:
print("开始测试")
raise IOError
except IOError:
print("定义好的错误") except:
print("别的错误")
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论