python抛出异常和捕获异常,在python中,可以用异常处理捕获程序中的所有错误

  python抛出异常和捕获异常,在python中,可以用异常处理捕获程序中的所有错误

  也就是异常的异常状态。在Python中,exception对象用于表示异常。如果在编译或运行程序的过程中出现错误,程序的执行过程会发生变化,抛出异常对象,程序流程进入异常处理。如果异常对象没有被处理或捕获,程序将执行回溯以终止程序。

  

1 捕捉一个异常

  捕捉异常。以零为除数得到ZeroDivisionError异常,

  打印(1/0)

  比如程序的连续执行并不会因为异常而停止,所以在异常发生时会处理异常并输出异常内容:

  尝试:

  打印(1/0)

  除了ZeroDivisionError as e:

  打印(e)

  

2 捕捉多个异常

  捕获多个异常,以ZeroDivisionError和TypeError为例。应用场景:

  可以用来捕获几个指定的对我们程序需求有用的异常,当这些异常产生时,我们会执行相应的操作。

  指定几个不影响程序最终要求,可以忽略的例外。这个异常产生时忽略,如果产生其他异常,就需要重新调试。

  对于范围(2):中的I

  打印(一)

  尝试:

  如果i==0:

  打印(1/0)

  else:

  打印(1英尺)

  除了(ZeroDivisionError,TypeError)作为e:

  打印(e)

  

3 Exception捕捉所有异常

  如果异常的种类不确定,可以用Exception来指代各种异常。

  以一个数值和一个字符串相加为例:

  尝试:

  打印(1 strstrstr )

  e:除外

  打印(e)

  

4 raise主动触发异常

  您可以使用raise关键字主动触发异常,并且可以在括号中添加异常的说明。执行效果如图所示:

  引发ZeroDivisionError(这是一个非常非常非常非常大的异常。)

  Raise可用于创建自己的异常类来定义新的异常。当程序触发某个条件(如果为真)时,引发一个定义的异常。

  例如,定义一个名为DangerousError的异常:

  类危险错误(异常):

  def __init__(self,msg):

  self.msg=msg

  def __str__(self):

  返回self.msg

  如果为真:

  引发DangerousError(异常警告!例外!例外!例外!例外!\n异常警告!例外!例外!例外!例外!”)

  else:

  引发DangerousError(请收回代码并重写。)

  

5 try…except…else…finally 逻辑

  Try后面是要处理的部分

  如果try部分触发的异常名称在except(或Exception)之后,则执行Exception之后的代码;

  除了可以不止一个,数量不限。匹配时,第一个会跟着下一个。

  如果存在触发异常,但异常与except不匹配,仍会报错;

  类危险错误(异常):

  def __init__(self,msg):

  self.msg=msg

  def __str__(self):

  返回self.msg

  AError=DangerousError(危险错误)

  BError=DangerousError( DangerousError b错误)

  CError=DangerousError( DangerousError )

  Elist=[AError,BError,CError,TypeError(1233211234567)]

  对于范围(4):中的I

  打印(一)

  尝试:

  提升Elist[i]

  除了e:的危险错误

  打印(e)

  如图所示,处理了前三个异常,但没有处理第四个异常,从而导致错误。

  当try后的代码没有发现异常时,执行else后的代码。

  对于范围(4):中的I

  尝试:

  打印(一)

  除了危险用户错误:

  打印(生成异常)

  else:

  打印(一切都好。)

  无论异常处理的结果如何,最终都会执行后面的代码。虽然

  对于范围(4):中的I

  尝试:

  如果我3:

  打印(一)

  else:

  打印(一)

  引发错误

  除了危险用户错误:

  打印(生成异常)

  else:

  打印(一切都好。)

  最后:

  打印(异常处理完成。)

  当在try…except部分检测到不匹配的异常时,程序在最终运行后结束执行,并报告一个异常:

  以这个例子为例,第二个异常TypeError(1233211234567 )与DangerousError不匹配。所以循环只执行两次,就完成了‘输出两次’的过程。节目结束后。最外面的印刷(“Hello World!”)从不执行。

  Elist=[AError,TypeError(1233211234567 ),BError,CError]

  对于范围(4):中的I

  打印(一)

  尝试:

  提升Elist[i]

  除了e:的危险错误

  打印(e)

  最后:

  打印(“处理完成。”)

  print(hello world!)

  这就是这篇关于python异常捕获过程的文章。有关python异常捕获的更多信息,请搜索流行的IT软件开发工作室以前的文章或继续浏览下面的相关文章。希望你以后能支持风行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: