码迷,mamicode.com
首页 > 其他好文 > 详细

异常处理

时间:2019-12-08 15:32:40      阅读:71      评论:0      收藏:0      [点我收藏+]

标签:style   自定义   通过   回溯   nbsp   ISE   error   存储   必须   

一、异常处理

  --代码出现错误时,导致整个程序无法继续运行,需要用到try/except/else语句来对抛出的异常进行处理,让程序可以继续往下运行。

  格式:

    try:

      代码块 #这里放置可能发生错误的代码块,当没出现异常时,正常执行

    except 类型名 【as 异常名】(实质是异常类型实例化的一个对象):

      代码块 #这里放置出现异常时如何进行处理的代码块  

 except 类型名 as 异常名(实质是异常类型实例化的一个对象):

      代码块 #这里放置出现异常时如何进行处理的代码块 

 except 类型名 as 异常名(实质是异常类型实例化的一个对象):

      代码块 #这里放置出现异常时如何进行处理的代码块 

except 【exception】【as 异常名】:

  代码块#可以捕获所有的异常

    else:

      代码块 #这里放置程  序正常执行时,执行的代码块。 

    finally:

      代码块。无论错误发生或者不发生都会执行。

  注意:try语句是必须的 else语句可以省略  except 和 finally至少有一个   

二、异常的分类      

  --函数内部的异常:函数内部发生的错误,会传递到函数调用处,若被处理掉则异常消失,如若不然则异常一层层往上传递,直到全局作用域,如若还没处理,则直接报错,程序停止运行。Traceback错误回溯,最后一行代码为错误的根本发生处,需要对该处进行检查。

  --全局异常:若果没有处理则直接报错,程序停止运行。

  --所有异常类型都是Exception的子类    

三、异常的本质

  --发生异常时,异常信息会存储到异常对象中,通过类似TypeError类型实例化一个对象来存储该异常信息,然后通过对象的方式进行异常传递。 

四、主动抛出异常

  --为了主动告知调用者发生了错误,避免一些重大损失,可以在程序执行过程中主动抛出异常用来提醒。比如付款过程中,可能一些原因导致无法付款,就需要抛出异常提醒 收银员,防止错误的交易。

  --主动抛出异常用raise。例子:if a < 0: raise Exception(【异常提示内容】)

  --自定义异常类型。例子:class MyError(Exception): pass  

    

异常处理

标签:style   自定义   通过   回溯   nbsp   ISE   error   存储   必须   

原文地址:https://www.cnblogs.com/henji1266/p/12005674.html

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