Task03:异常处理
Python使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生让Python不知所措的错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。
异常是使用try-except代码块处理的。try-except代码块让Python执行指定的操作,同时告诉Python发生异常时怎么办。使用了try-except代码块时,即便出现异常,程序也将继续运行:显示你编写的友好的错误消息,而不是令用户迷惑的traceback。
使用try-except代码块
当你认为可能发生了错误时,可编写一个try-except代码块来处理可能引发的异常。处理ZeroDivisionError异常的try-except代码块。``
try:
print(5/0) except ZeroDivisionError:
print("You can't divide by
zero!")
else代码块
通过将可能引发错误的代码放在try-except代码块中,可提高这个程序抵御错误的能力。错误是执行除法运算的代码行导致的,将它放到try-except代码块中。这个示例还包含一个else代码块;依赖于try代码块成功执行的代码都应放到else代码块中。
print("Give me
two numbers, and I'll divide them.") print("Enter 'q' to quit.")
while True:
first_number = input("\nFirst number:
") if first_number == 'q':
break
second_number = input("Second number:
") u try: answer = int(first_number) /
int(second_number) v except
ZeroDivisionError:
print("You can't divide by
0!") w else:
print(answer)
处理FileNotFoundError异常
使用文件时,一种常见的问题是找不到文件:你要查找的文件可能在其他地方、文件名可能不正确或者这个文件根本就不存在。对于所有这些情形,都可使用try-except代码块以直观的方式进行处理。
Traceback (most recent call last):
File "alice.py", line 3, in
<module> with open(filename)
as f_obj:
FileNotFoundError:
[Errno 2] No such file or directory: 'alice.txt'