python 捕获异常,python捕获异常后处理

  python 捕获异常,python捕获异常后处理

  无论是新手还是有经验的程序员,都会遇到程序报错终止执行的情况。python的错误信息可以分为以下两类。

  语法错误、语法错误异常和异常显示如下

  #语法错误

  2 x 2

  文件 stdin ,第1行

  2 x 2

  ^

  语法错误:无效语法

  #异常

  #除数为0的异常

  2/0

  回溯(最近一次呼叫):

  模块中文件 stdin 的第1行

  ZeroDivisionError:除以零

  #未定义变量的异常

  a=1

  回溯(最近一次呼叫):

  模块中文件 stdin 的第1行

  名称错误:未定义名称“a”

  如果不熟悉基本语法,可能会写出有语法错误的代码,这是新程序员常犯的错误,而例外则是因为考虑不充分。比如除数为0,开发者可能在第一次测试被除数不为0的情况下认为代码没问题。但是当有很多项目要处理,某天处理了一个带除数的事务,代码报错,这时才意识到代码有bug。这也是软件开发不能一步完成,而是不断迭代升级的原因。只有代码处理项目足够多,范围足够广,才能发现现有代码的不足,并做出改进。

  处理代码中可能出现的异常可以增加程序的健壮性。在python中,异常是由try捕获的.except语句。基本用法如下

  定义计算(a,b):

  .尝试:

  .数量=a/b

  .除了ZeroDivisionError:

  .print([警告] {}为零。格式(b))

  .如果a=0,则num=float(inf ),否则为float(-inf )

  .退货数量

  .

  calc(2,1)

  2.0

  calc(2,0)

  [警告] 0是零

  inftry语句的具体原理如下

  将可能有异常的语句放在try代码块中,用except捕获相应的异常。可以有许多except语句,它们对应于许多不同类型的异常。当try中的一条语句用尽异常时,程序会根据异常类型执行相应的except语句。基本上不可能记住所有的异常类型。在实际开发中,往往是根据经验先设置几种可能的异常类型。当遇到超出范围的异常时,会修改代码并捕获相应的异常。

  Try语句有两个可选语句。

  只有当try中的代码没有引发异常时,才会执行elsefinallyelse语句;在正常执行try语句或处理异常后,将执行finally语句,如下例所示。

  定义计算(a,b):

  .尝试:

  .数量=a/b

  .除了ZeroDivisionError:

  .print([警告] {}为零。格式(b))

  .如果a=0,则num=float(inf ),否则为float(-inf )

  .除了类型错误:

  .num=float(a)/float(b)

  .除了:

  .上升

  .否则:

  .print({}/{}=={} )。格式(a,b,num))

  .最后:

  .打印(结果是{} 。格式(数字))

  .退货数量

  .

  # try语句没有抛出异常,else最后执行。

  calc(2,1)

  2/1==2.0

  结果是2.0

  2.0

  # try语句抛出异常,else语句不执行,except处理异常,最后执行。

  calc(2,0)

  [警告] 0是零

  结果是inf

  中程核力量

  # try语句抛出异常,else语句不执行,except处理异常,最后执行。

  calc(2 ,1)

  结果是2.0

  2.0

  # try语句抛出异常,但没有对应的except来处理异常,程序终止,else和finally不执行。

  calc(a,1)

  回溯(最近一次呼叫):

  模块中文件 stdin 的第1行

  名称错误:未定义名称“a”

  在实际开发中,第一次编码只需要处理已知的异常类型,然后会根据遇到的错误调整代码。

  目标

  —如果你喜欢,分享给你的朋友—

  关注我们,解锁更多精彩内容!

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

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