异常处理

Posted henji1266

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常处理相关的知识,希望对你有一定的参考价值。

一、异常处理

  --代码出现错误时,导致整个程序无法继续运行,需要用到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  

    

以上是关于异常处理的主要内容,如果未能解决你的问题,请参考以下文章

java异常处理详解!!

Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )

Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )

异常处理,约束,MD5加密,日志处理

PHP异常处理

Java的异常处理语法