程序的异常处理
Python程序一般对输入有一定要求,但当实际输入不满足程序要求时,可能会产生程序的运行错误。
例如,要求用户输入数字,但其可能输入的非数字。
>>>n = eval(input("请输入一个数字: ")) 请输入一个整数: python
Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> n = eval(input("请输入一个数字: ")) File "<string>", line 1, in <module> NameError: name 'python' is not defined |
由于使用了eval()函数,如果用户输入不是一个数字则可能报错。这类由于输入与预期不匹配造成的错误有很多种可能,不能逐一列出可能性进行判断。为了保证程序运行的稳定性,这类运行错误应该被程序捕获并合理控制。
Python语言使用保留字try和except进行异常处理,基本的语法格式如下:。
try:
<语句块1>
except:
<语句块2>
语句块1是正常执行的程序内容,当执行这个语句块发生异常时,则执行except保留字后面的语句块2。
1 2 3 4 5 | try: n = eval(input("请输入一个数字: ")) print("输入数字的3次方值为: ", n**3) except: print("输入错误,请输入一个数字!") |
运行:
>>> 请输入一个数字: 1010 输入数字的3次方值为: 1030301000 >>> 请输入一个数字: python 输入错误,请输入一个数字! |
除了输入之外,异常处理还可以处理程序执行中的运行异常。
>>>for i in range(5): print(10/i, end=" ") Traceback (most recent call last): File "<pyshell#12>", line 2, in <module> print(10/i, end=" ") ZeroDivisionError: division by zero |
给程序添加异常处理:
1 2 3 4 5 | try: for i in range(5): print(10/i, end=" ") except: print("某种原因,出错了!") |
运行:
>>> 某种原因,出错了! |

