异常处理
num=eval(input("请输入一个整数:"))
print(num**2)
这是一个让用户输入一个整数,对其输入整数进行平方运算并输出的运算
如果当用户没有输入整数时,会产生异常,怎么处理?
Exited with error status 1
请输入一个整数:Traceback (most recent call last):
File "e58c31cd143382c0b3b85e1158b3b47f", line 1, in <module>
num=eval(input("请输入一个整数:"))
File "<string>", line 1, in <module>
NameError: name 'abc' is not defined
第三行的line1
表示了异常发生的代码行数
最后一行 NameError
表示异常类型,说明命名出现了错误
name 'abc' is not defined
表示异常内容提示
异常处理的基本使用
try:
<语句块1>
except:
<语句块2>
我们把一块要执行的语句放在try语句对应的语句块1中,如果它出现了异常,我们执行except对应的语句块2,如果它不出现任何异常,那就不执行语句块2,直接执行语句块1之后执行后续语句。
try:
<语句块1>
except <异常类型>:
<语句块2>
为了进一步区分不同的异常类型,可以在except中增加一个异常类型标记,表示只有在这种异常类型发生时,才会执行语块2。
try:
num = eval(input("请输入一个整数:"))
print(num**2)
except: #NameError:
print("输入不是整数")
异常处理的高级使用
try:
<语句块1>
except:
<语句块2>
else:
<语句块3>
finally:
<语句块4>
无论前面是否发生异常,finally对应的语句块4一定会执行,else对应的语句块3在不发生异常时执行。可以理解为,首先执行语句块1,如果不发生异常去执行语句块3,如果发生异常去执行语句块2,无论发不发生异常,最后都要执行语句块4。