我们作为开发者,包括正在上班的开发工程师都不可能保证写好的程序运行不出现任何错误,但遇到一些占时没时间解决的错误,而又想让程序运行起来的时候,这个时候我们就需要用到我们现在需要学习的异常处理,将出现错误的代码暂时进行异常处理。
异常捕获可以使用try语句来实现,任何出现在try语句范围的异常都会被及时捕获到。try语句有两种实现方式:第一种是try-except,第二种是try-finally
其语法格式如下:
try:
检测范围
except Exception[as reason]
出现异常后的代码处理
- #打开一个不存在的页面,出现找不到文件异常
- try:
- f=open("不存在的文件.txt")
- print(f.read())
- except:
- #捕获所有异常
- print("文件找不到哦,请仔细检查")
运行结果:文件找不到哦,请仔细检查
显示错误信息:
- #打开一个不存在的页面,出现找不到文件异常
- try:
- f=open("不存在的文件.txt")
- print(f.read())
- except OSError as error:
- print("文件找不到哦,请仔细检查,错误的原因是:",str(error))
运行结果:文件找不到哦,请仔细检查,错误的原因是: [Errno 2] No such file or directory: '不存在的文件.txt'
针对不同异常设置多个except
- try:
- num=1+"1"
- f=open("不存在的文件.txt")
- print(f.read())
- except OSError as error:
- print("文件找不到哦,请仔细检查,错误的原因是:",str(error))
- except TypeError as error:
- print("数据类型错误,错误的原因是:",str(error))
对多个异常统一管理
- try:
- num=1+"1"
- f=open("不存在的文件.txt")
- print(f.read())
- except (OSError ,TypeError) as error:
- print("数据类型错误,错误的原因是:",str(error))
- try:
- f=open("不存在的文件.txt")
- print(f.read())
- num=1+"1"
- except :
- print("出错了")
- finally:
- print("我来收尾吧")
抛出异常
raise ZeroDivisionError("除数不能为零")
在异常处理当中也能结合else语句一起使用,else语句不仅仅用在if中,也能用在while和for中。