1.异常:
python中一切都是对象,异常也釆用对象的方式来处理。处理过程:
1)抛出异常:在执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给解释器。
2).捕获异常:解释器得到该异常后,寻找相应的代码来处理该异常。
2.try–except遇到异常的执行顺序
3.try–except–else的执行顺序
4.try–except–else–finally结构:
try:
a=input("请输入一个被除数:")
b=input("请输入一个除数:")
c=float(a)/float(b)
except BaseException as e:
print(e)
else:
print(c)
finally:
print("输入结束!")
结果:
请输入一个被除数:10
请输入一个除数:0
float division by zero
输入结束!
进程已结束,退出代码0
5.一般不要将return放到try–except–else–finally结构中,会发生意想不到的错误,建议放到方法最后。
6.with语句
7.trackback模块打印异常信息
import traceback
######异常信息输出到指定文件#####
try:
print("step 1")
num=1/0
except:
with open("d:/a.txt","a") as f:
traceback.print_exc(file=f)
结果:
8.测试自定义异常类
#测试自定义异常类
class AgeError(Exception):#继承Exception
def __init__(self, errorInfo):
Exception.__init__(self)
self.errorInfo =errorInfo
def __str__(self):
return str(self.errorInfo)+",年龄错误,应该在1-150之间"
if __name__=="__main__":#如果为True,模块是作为独立运行的,可以执行测代码
age=int(input("输入一个年龄:"))
if age <1 or age >150:
raise AgeError(age)
else:
print("正常的年龄;",age)
结果:
输入一个年龄:200
Traceback (most recent call last):
File "D:/pythonProject/112.py", line 11, in <module>
raise AgeError(age)
__main__.AgeError: 200,年龄错误,应该在1-150之间
进程已结束,退出代码1
9.断点的作用: