码迷,mamicode.com
首页 > 编程语言 > 详细

Python异常处理

时间:2019-05-28 18:38:21      阅读:122      评论:0      收藏:0      [点我收藏+]

标签:finally   就是   exe   ror   assert   注意   cep   作用   处理   

2019-05-28

Python中的异常处理

需求:
  当程序遇到问题时不让程序结束,而越过错误继续向下执行

try......except.....else
格式:
try: 语句t except 错误表示码 as e: 语句2 ....... except 错误表示码 as e: 语句n else: 语句e

 

注意:
  else语句可有可无
作用:
  用来检测try语句块中的错误,从而让except语句捕获错误信息并处理

逻辑:
  当程序执行到try-except-else语句时
    1、如果当try语句执行出现错误,会匹配第一个错误码,如果匹配上就执行对应的"语句"
    2、如果try语句执行出现错误,没有匹配的异常,错误将会将提交到上一层的try语句。或者到程序的最上层。
    3、如果try语句执行没有出现错误,执行else下的语句else/得存在
  使用execpt而不使用任何的错误类型
  使用execpt带着多种异常

 

try:
  pass
except(NameError,ZreoDivisionError)
  print("出现了NameError或ZreoDivisionError")

 



特殊的一些错误:
  1、错误其实就是class(类),所有的错误都继承自BaseException,所以在捕获的时候,它不回来该类型的错误,还把子类一网打尽。
  2、跨越多层调用,main调用了func2,func2调用了func1,func1出现了错误,这是只要main捕获到了就可以处理。例如以下:

def func1(num):
    print(1/num)
def func2(num):
    func1(num)
def main():
    func2(2)
main()

写代码时内出现错误,怎么检测异常

try.....except.......finally

格式:

try:
语句1
except 错误表示码 as e:
语句2
.......

except 错误表示码 as e:
语句n
finally:
语句f
作用:语句1无论是否有错误都将继续执行最后的语句f

 

断言:

def func(num,div):
assert(div !=0),"div不能为0"
return num/div

print(func(10,0))

 

常见错误:

Name Error 变量没定义
Systax Error 语法错误
IO Error 文件错误
Zero DivisionError 10/0,除零错误
Value Error 值错误,例如a = int(‘aa’)
keyboard Interrupt 强制终止程序产生,ctrl+c强制终止程序运行

 

 

Python异常处理

标签:finally   就是   exe   ror   assert   注意   cep   作用   处理   

原文地址:https://www.cnblogs.com/despatch/p/10937820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!