您的位置 首页 java

python异常捕获——捕获所有异常

python 语言是解释执行的,由python解释器负责python代码的运行,当python解释器执行到不合法的指令时就会抛出异常并打印错误信息。

这里需要特别强调的是一旦python解释器抛出错误,后续的python代码就不再继续运行了,也就是说代码的运行也就停止了。

为什么要捕获异常?

遇到错误的代码就抛出错误并停止运行,这个说明你的代码写的有问题嘛,把代码修改正确后再次运行不就行了,这个说法看似挺有道理的。不过要做到代码的绝对正确运行却并不容易,特别是需要接受外来输入参数的情况就不可控了,因为你无法限制“别人”传给你的参数是什么。

比如你开发了一个 web服务 ,需要用户提交一些信息,如果用户有意或无意提交了导致异常的参数,那么你的web服务就因为这个异常就彻底不能运行了,这对你的用户来说就是个灾难,估计以后很难再吸引他们使用你的服务了,这显然是不可接受的。

异常捕获 就是针对某一部分可能出错的代码,在运行期间一旦出现错误就捕获它,在捕获到错误后将错误信息写入日志文件或进行其他的处理,然后接着继续运行后续的代码, 捕获异常的目的就是不让代码停止运行。

使用python捕获所有的异常

 try:
    ...
except Exception as e:
    ...  

以上为python异常捕获的代码格式,其中:

  • try和except之间的代码为正常的程序代码
  • Exception表示捕获所有的异常,as e表示用e这个别名来替代Exception
  • except之后的代码为捕获到异常后的处理代码,常见的处理就是记录错误日志

我们先来看一个简单的例子

 def parse_int(s):
    try:
        n = int(v)
    except Exception as e:
        print("ERROR:解析异常")

parse_int(10)
print("如果打印这条信息表示程序还在继续运行")  

执行结果说明:

  • 首先parse_int(10)这个语句执行出错并抛出了异常
  • pase_int(10)之后的print语句打印出了信息,说明程序并没有停止运行
  • 从打印的异常信息无法得出哪里出了问题

正常情况下,捕获了异常之后需要将错误信息打印出来或者写入日志文件,如果不这么做这个异常就被忽略掉了,我们可以像下面这样打印异常信息

 def parse_int(s):
    try:
        n = int(v)
    except Exception as e:
        print("ERROR:解析异常")
        print("原因:", e)      # 打印异常信息

parse_int(10)
print("如果打印这条信息表示程序还在继续运行")  

文章来源:智云一二三科技

文章标题:python异常捕获——捕获所有异常

文章地址:https://www.zhihuclub.com/191365.shtml

关于作者: 智云科技

热门文章

网站地图