1. 异常概念
异常是指在程序执行过程中出现的错误,可以是语法错误、逻辑错误或者其他未知错误,异常会导致程序直接崩溃,因此合理地处理异常可以保证程序可靠性。
Python中的异常处理机制可以捕捉到这些错误并且给出响应的处理方式。
2. 异常处理结构
处理异常的结构为try-except语句,其基本语法如下:
try:
#可能导致异常的代码块
except 异常类型 as 异常变量:
#处理异常的代码块
2.1 try语句块
在try语句块中编写可能会抛出异常的代码。当执行try语句块中的代码时,如果发生异常,Python将“引发”这个异常,即程序不再继续执行try语句块中后续代码,转而执行except语句块代码。如果没有异常发生,程序将顺序执行try语句块中的所有代码。
2.2 except语句块
在except语句块中编写对捕获到的异常的处理代码。当发生异常时,程序根据异常类型选取对应的except语句块,执行其代码。如果没有发生异常,则不会执行except语句块的代码。
为了保证程序可靠性,建议进行逐层捕获异常。
3. 异常处理方式
异常处理方式主要有以下几种:
3.1 捕捉所有异常
可以使用except Exception语句捕捉所有异常,但这种方式不推荐使用。
try:
#可能导致异常的代码块
except Exception as e:
#处理异常的代码块
3.2 捕捉具体异常
根据异常类型进行捕捉
try:
#可能导致异常的代码块
except 异常类型1 as e1:
#对异常1的处理代码块
except 异常类型2 as e2:
#对异常2的处理代码块
3.3 finally语句块
无论try语句块中是否发生异常,finally语句块中的代码总是会被执行。
try:
#可能导致异常的代码块
except Exception as e:
#处理异常的代码块
finally:
#总是会执行的代码块
4. 自定义异常
在程序中,用户可以通过raise语句来主动抛出异常。可以自定义异常类,让程序更加清晰。
class MyException(Exception):
def __init__(self, message):
self.message = message
try:
raise MyException('My Exception')
except MyException as e:
print(e.message)
在编程时,要考虑好异常处理的逻辑,尽量减少程序出现异常的情况,并且友好地提示用户。