关于异常最有意思的地方就是可以通过捕捉异常的功能来处理异常,这个功能就是 就是用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 not be zero')
运行结果如下:
那么我们再来换一种方式来捕捉异常,你会发现有所不同
try:
x = input('Enter the first number:')
y = input('Enter the second number:')
print(x/y)
except Exception as e :
print('The second number can not be zero')
结果如下:
这两种捕捉异常的方式是一样,但代码略有不同。 细心的话一定能洞悉其中的区别: Exception 是 所有异常的基类
AttributeError 特性应用或赋值失败时引发
IndexError 在使用序列中不存在的索引时引发
KeyError 在使用映射不存在的键时引发
SyntaxError 在代码为错误形式时引发
TypeError 在内建操作或者函数应用于错误类型的对象是引发
ValueError 在内建操作或者函数应用于正确类型的对象,但是该对象使用不合适的值时引发
ZeroDivisionError 在除法或者摸除操作的第二个参数为0时引发
NameError 在找不到名字(变量)时引发IOError 试图打开不存在的文件时引发