Python进阶——异常处理及程序调试
-为了让程序全部执行
-结果观察中——要么try处理,要么raise抛出
1、异常
-
Python常见的异常
NameError #尝试访问一个没有声明的变量引发的错误
2、异常处理语句
-
把可能异常的代码放在try语句块中,把处理结果放在except语句块中
#try...except try: 可能出现错误的代码块 except [指定要捕获的异常 as 别名]: #如果不指定,表示捕获全部异常,可指定多个异常,用逗号隔开即可 进行异常处理的代码块 eg: def Sun(): # print("风起了-周四") print(100/0) #因为这个异常,会去执行except语句的内容 if __name__ =='__main__': try: Sun() except #(yichang1,yihcnag2) as e: print("除数不能为0") 除数不能为0 #try...except....else else:try语句没有发现异常时执行 eg: def Sun(): print("风起了-周四") #print(100/0) if __name__ =='__main__': try: Sun() except: print("有异常") else: print("没有异常呢") 风起了-周四 没有异常呢 #try...except...finally finally:无论程序有无异常,finally中的代码块都会被执行,类似于try语句快之外的语句,不管怎样都会被执行 eg: def Sun(): print("风起了-周四") print(100/0) if __name__ =='__main__': try: Sun() except: print("有异常") finally: print("不论异常,我都会被执行") print("我是异常之外的语句") 风起了-周四 有异常 不论异常,我都会被执行 我是异常之外的语句 #raise语句 前面的几个语句都是处理异常,raise是不进行处理,抛出异常 eg: def Sun(): i=0 if i==0: raise ValueError("抛出异常") if __name__ =='__main__': Sun() File "C:/Users/jiarongjuan/Desktop/wk3.py", line 5, in Sun raise ValueError("抛出异常") ValueError: 抛出异常