程序在运行期间发生错误时,它都会创建一个异常对象。如果你编写了处理该异常的代码,程序将继续运行;如果你未对异常进行处理,程序将停止,并显示一个traceback,其中包含有关异常的报告。
Python程序中,异常使用try-except代码块来处理。try-except代码块让程序执行指定的操作,同时告诉程序发生异常时怎么办。使用try-except代码时,即使出现异常,程序也将继续运行:显示你所编写的友好的错误消息,而不是令用户疑惑的traceback。
不使用try-except捕获异常
现在编写一个不使用try-except的程序,看看会发生什么事情:
运行这个程序,你将会看到输出一大段错误:
上述traceback中ZeroDivisionError就是一个异常对象。发生这样的错误时,程序就会程序运行,并指出引发了哪种异常。而我们就可以根据这些信息对程序进行修改。
下面我们就来修改程序,让它知道发生错误时该怎么处理。
使用try-except捕获异常
当你认为程序可能会发生错误,可以使用try-except来捕获异常。让程序知道,发生错误该做什么,而不是停止。
运行这程序,你将会看到输出下面的内容:
在这里实例中,try代码块中的代码,引发了ZeroDivisionError异常。Python指出了该如何解决问题的except代码块,并运行其中的代码,这样用户看到一条友好的错误消息,就知道怎么解决了。同时我们也看到了程序发生异常时,程序没有停止,而是继续运行后面的代码。
Python语言异常类型有很多种,ZeroDivisionError只是其中的一种。更多异常类型。
请看下面的链接:https://docs.python.org/3/library/exceptions.html
小结
什么是异常;程序中有异常或没有异常的区别;捕获异常的方法try-except。
领取专属 10元无门槛券
私享最新 技术干货