北京科技公司10强西安seo顾问培训
思考
在我们编写python程序的过程中,测试运行时总会碰到各种各样的报错,一般,只要python程序出现报错,程序就会退出运行的状态,这在某些情况下非常不友好,那么我们如何实现遇到报错时不退出程序,而且还能对对应的异常做处理呢?
#如果没有test.txt这文件,程序就会报错退出,导致后续代码无法被执行到
print("start....")
fp=open("test.txt")
print("end...")
异常捕获
异常捕获的最重要的两个目的:
- 遇到异常不退出
- 对异常做特殊处理
# -*- coding: UTF-8 -*-
import json#NameError
#print(a)#keyError
# d1 = {"a":1}
# print(d1["b"])#indexError
# lst=[1,2,3]
# print(lst[4])#断言异常 代码逻辑 测试
# num1=int(input("please enter num1:"))
# num2=int(input("please enter num2:"))
# assert num1 > num2def add(a,b):return abs(a)+abs(b)#单元测试用例
#在python有test库专门做测试逻辑,但是简单的测试可以用断言去做assert
assert add(-1,2) == 3#异常捕获
try:print("json begin...")# int("ABC")# 1/0# d1=json.loads("abc")print("json after...")
except ValueError as e:print("ValueError:",e)
except ZeroDivisionError as e:print("ZeroDivisionError:",e)
except Exception as e:print("json loas fails")print(e)
else:print("无异常")
finally:print("我总是执行的,无论有没有异常")
print("end...")#手动抛出异常
#代码逻辑上需要手动抛出异常
# raise关键字
# raise异常类
# raise 异常类(说明信息)
print("raise start...")
raise RuntimeError("运行时异常")
print("raise end....")