- 50
- 0
- 约8.04千字
- 约 33页
- 2017-12-22 发布于天津
- 举报
用异常对象(exceptionobject).ppt
小结 else子句:除了except子句,还可以使用else子句;如果try后的语句块没有引发异常,则执行else子句 finally子句:如果需要确保某些代码不管是否有异常引发均需要执行的话,那么这些代码可以放在finally子句中 异常和函数:在函数内引发的异常,会被传播到函数调用的地方,对于方法也是一样的 * 编写一个函数converter(),给出一个整型值,?返回代表该值的英文,?比如输入?89?返回?“eighty-nine”。 注意:(1)本练习中的输入整型值限定在[0,2000]。 (2)对可能出现异常的地方,根据需要使用try/except/else/finally来捕捉与处理异常。 * Python程序设计(111100) * 8.1 什么是异常 8.2 创建与引发异常 8.3 捕捉与处理异常 第八章 异常 异常 Python用异常对象(exception object)来表示非正常(即异常)的情况,错误发生后会自动引发异常 如果异常未被捕捉或处理,那么程序就会进行回溯(traceback)终止执行 1/0 Traceback (most recent call last): File pyshell#50, line 1, in module 1/0 ZeroDivisionError: division by zero 每个异常都是一些类的实例,这些实例可以被引发,并且可以通过各种方式进行捕捉,从而对其进行进一步的处理 * * 8.1 什么是异常 8.2 创建与引发异常 8.3 捕捉与处理异常 第八章 异常 引发异常 异常可以在出错时自动引发;为引发异常,可以使用一个类(应该是Exception异常类的子类)或者实例参数调用raise语句,提供异常和错误信息这两个参数 raise Exception # 引发没有错误信息的普通异常 Traceback (most recent call last): File pyshell#51, line 1, in module raise Exception Exception raise Exception(‘Hyperdrive overload’) # 引发带有自定义错误信息的异常 Traceback (most recent call last): File pyshell#52, line 1, in module raise Exception(Hyperdrive overload) Exception: Hyperdrive overload * 所有内建异常类 Python的库参考手册有专门的一节“Built-in Exceptions” 注意:Python 3.X中不再有exceptions这个模块!所以无需使用import语句来导入 在Python 3.X中可以通过如下方式查看: import builtins # 包含所有的内建函数、异常和其它对象 dir(builtins) [ArithmeticError, AssertionError, AttributeError, BaseException, BlockingIOError, BrokenPipeError, BufferError, BytesWarning, ChildProcessError, * 一些内建异常 类 名 描 述 Exception 所有异常的基类 AttributeError 特性引用或赋值失败时引发 IOError 试图打开不存在文件(或其它情况)时引发 IndexError 使用序列中不存在的索引时引发 KeyError 使用映射中不存在的键时引发 NameError 找不到名字(变量)时引发 SyntaxError 代码为错误形式时引发 TypeError 内建操作或者函数应用于错误类型对象时引发 ValueError 内建操作或者函数应用于正确类型对象,但对象使用不合适的值时引发 ZeroDivisionError 除法或者模除操作的第二个参数为0时引发 * 自定义异常类 如何创建自己的异常类呢? 只要是确保该类是从Exception类(直接或间接)继承就可以了 编写一个自定义的异常类基本上如下所示: class SomeCustomException(Exception): pass * * 8.1 什么是异常 8.2 创建与引发异常 8.3 捕捉与处理异常 第八章 异常 捕捉异常 关于异常有意思的地方在于可以捕捉并处理它们,这个功能可以使用try/except语句来
原创力文档

文档评论(0)