Python基础教程 raise 语句

8.2 让事情沿你指定的轨道出错

正如你看到的,出现问题时,将自动引发异常。先来看看如何自主地引发异常,还有如何创建异常,然后再学习如何处理这些异常。

8.2.1 raise 语句

要引发异常,可使用raise语句,并将一个类(必须是Exception的子类)或实例作为参数。将类作为参数时,将自动创建一个实例。下面的示例使用的是内置异常类Exception:

>>> raise Exception

Traceback (most recent call last):

File "", line 1, in ?

Exception

>>> raise Exception('hyperdrive overload')

Traceback (most recent call last):

File "", line 1, in ?

Exception: hyperdrive overload

在第一个示例(raise Exception)中,引发的是通用异常,没有指出出现了什么错误。在第二个示例中,添加了错误消息hyperdrive overload。

有很多内置的异常类,表8-1描述了最重要的几个。在“Python库参考手册”的Built-inExceptions一节,可找到有关所有内置异常类的描述。这些异常类都可用于raise语句中。

>>> raise ArithmeticError

Traceback (most recent call last):

File "", line 1, in ?

ArithmeticError

表8-1 一些内置的异常类

类 名 描 述

Exception 几乎所有的异常类都是从它派生而来的

AttributeError 引用属性或给它赋值失败时引发

OSError 操作系统不能执行指定的任务(如打开文件)时引发,有多个子类

IndexError 使用序列中不存在的索引时引发,为LookupError的子类

KeyError 使用映射中不存在的键时引发,为LookupError的子类

NameError 找不到名称(变量)时引发

SyntaxError 代码不正确时引发

TypeError 将内置操作或函数用于类型不正确的对象时引发

ValueError 将内置操作或函数用于这样的对象时引发:其类型正确但包含的值不合适

ZeroDivisionError 在除法或求模运算的第二个参数为零时引发

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181108G0FRZ100?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券