图片来源于网络
在日常的程序开发当中,我们肯定是会遇到一些异常的。Python
有提供异常处理的方式——try/except
,这篇博客就来分享一下使用方式。
try/except语法
try:
# 执行代码
except :
# 发生异常执行的代码
try
执行步骤如下:
- 首先执行
try
子代码块(在关键字 try 和关键字 except 之间的语句); - 如果没有异常发生,忽略 except 子句,try 子代码块执行后结束;
- 如果在执行
try
子代码块的过程中发生了异常,那么try
子代码块剩下的部分将被忽略。如果异常的类型和except
之后的名称相符,那么对应的except
子代码块将被执行。 - 如果一个异常没有与任何的
except
匹配,那么这个异常将会传递给上层的try
中。
在编写代码的过程中,一个try
可能会有多个except
子代码块,用来区分处理不同的异常情况。
代码示例
import sys
try:
f = open('myfile.txt')
s = f.readline()
i = int(s.strip())
except OSError as err:
print("OS error: {0}".format(err))
except ValueError:
print("Could not convert data to an integer.")
except:
print("Unexpected error:", sys.exc_info()[0])
raise
这个例子是以Python
读写文件为例,分为三种情况,OS异常、参数异常、未知异常。
try/except...else语法
这个语法是try/except
的升级版本,else
子代码是可选的语句,但是必须放在try/except
的后面。
try:
# 执行代码
except :
# 发生异常执行的代码
else:
# 没有异常时执行的代码
try-finally 语法
try-finally
语法无论是否发生异常都将执行最后的代码,我个人认为是try/except...else
的升级版。具体如下:
try:
# 执行代码
except :
# 发生异常执行的代码
else:
# 没有异常时执行的代码
finally :
# 不管有没有异常都会执行的代码