要引发异常,可以使用raise语句,并将一个类或实例作为参数,将类作为参数时,将自动创建一个实例
>>> raise Exception
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
Exception
常见的异常类型:
Exception 几乎所有异常类都从它派生
AttributeError 引用属性或给它赋值失败时引发
OSError 操作系统不能执行指定的任务时引发
IndexError 使用序列中不存在的索引时引发,为LookupError的子类
KeyError 使用映射中不存在的键时引发,为LoolupError的子类
NameError 找不到名称或变量时引发
SytaxError 代码不正确时引发
TypeError 将内置操作或函数用于类型不正确发的对象时引发
ValueErroe 将内置操作或函数用于这样的对象时引发:其类型正确但包含的值不合适
ZeroDivisionError 在除法或求模运算的第二个参数为零时引发
自定义异常类:务必直接或间接继承Expection,意味从任何内置异常类派生都可以
class SonmeCustomExpection(Expection):
pass
捕获异常:try/except
try:
x = int(input('Enter the first number: '))
y = int(input('Enter the second number: '))
print(x/y)
except ZeroDivisionError:
print("The second number can't be zero")
捕获多种异常:
except( ZeroDivisionError, TypeError):
捕获所有异常(不指定任何异常):
except: