TA的每日心情 | 奋斗 2024-11-24 15:47 |
---|
签到天数: 804 天 [LV.10]以坛为家III
管理员
- 积分
- 726782
|
- 与python异常相关的关键字
- raise:手动抛出/引发异常:raise [exception[,data]]
- try/except:捕获异常并处理
- pass:忽略异常
- as:定义异常实例(except IOError as e)
- finally:无论是否出现异常,都执行的代码
- else:如果try中的语句没有引发异常,则执行else中的语句
- except Exception as error:
- python中的异常类型
- StandardError类:如果程序上出现逻辑错误, 将引发该异常。StandardError类是所有内敛异常的基类,放置在默认的命名空间中,因此使用IOEroor, EOFError, ImportError等类,不需要导入exception模块。
- StopIteration类:判断循环是否执行到尾部,如果循环到尾部,则抛出该异常。
- GeneratorExit类:是由Generator函数引发的异常,当调用close()时引发该异常。
- Warning类:表示程序中的代码引起的警告。
- try ... expect
- try:
- block
- except [exception1(,exception2...),[data…]]:
- block
- (else: block)
- 例1:
- try:
- 1/0
- except ZeroDivisionError as errorinfor:
- print(errorinfor) #输出详细错误信息:integer division or modulo by zero
- 例2:
- try:
- print "Testing begins!"
- raise MyError #自己抛出一个异常,后面代码不执行.
- except MyError:
- print 'This a defined error!'
- except:
- print "Other error!"
- try ... finally
- finally 里面只是执行完成try中的代码后,必须执行的代码, 即使是 try中有异常抛出,也是会去执行finally
- 所以,一般情况下,finally里面执行的都是一些清理工作,比如:关闭文件描述符,释放锁等
- 注意,finally中,如果出现异常,外部如果没有相应的捕获机制,该异常会层层抛出,直到最顶端,然后解释器停止。一般在外层再加一次try except异常捕获
参考文档:
|
|