文章目录
异常
1.异常的处理过程:
第1步: 抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该
异常的一个对象,停止当前执行路径,并把异常对象提交给解释器。
第2步: 捕获异常:解释器得到该异常后,寻找相应的代码来处理该异常。
异常解决的关键:定位
2. try…一个 except 结构
try:
x = int(input("请输入一个数字:"))
except BaseException as e:
print(e)
print("发生异常,输入的不是一个数字!")
3. try…多个 except 结构:
先子类异常,后父类异常的顺序
try:
a = input("输入一个被除数:")
b = input("输入一个除数:")
c = float(a)/float(b)
print(c)
except ZeroDivisionError:
print("异常,不能除以0!")
except ValueError:
print("异常,不能将字符串转化成数字!")
except NameError:
print("异常,变量不存在!")
except BaseException as e:
print(e)
4. try…except…else 结构
如果 try 块中没有抛出异常,则执行 else 块。如果 try 块中抛出异常,则执行 except 块,不执行 else 块。
5. try…except…finally 结构
try…except…finally 结构中,finally 块无论是否发生异常都会被执行;通常用来释放 try 块中 申请的资源。
try:
f = open("d:/add.txt","r")
content = f.readline()
print(content)
except:
print("文件未找到!")
finally:
try:
f.close()
except BaseException as e:
print(e)
6. with 上下文管理
with 上下文管理可以自动管理资源,在文件操作、网络通信相关的场合非常常用。
7.traceback 模块打印异常信息
import traceback
try:
print("step1")
num = 1/0
except:
with open("d:/a.log","a") as f:
traceback.print_exc(file=f)
断点调试