美文网首页
用答卷实例通俗理解和深刻记忆:python异常处理五大机制

用答卷实例通俗理解和深刻记忆:python异常处理五大机制

作者: 码字的程序员 | 来源:发表于2022-07-06 17:14 被阅读0次

    什么是python的异常处理

    python的异常处理,简而言之就是当程序发生错误时,能够通过程序对错误进行捕捉,并处理,从而不会导致程序全盘崩溃!要怎么更好地理解呢?

    python异常处理,就好像考试答题

    通常情况下,考试的卷子上从头到尾不可能只有一道题(就像python的项目不可能只有一个功能),然后,题目有容易的有难的,甚至是有错的(就像程序可能是简单的也可能是复杂的),再加上参加考试的人的知识储备不同(用户的操作习惯不同),都可能导致有些题目答错了,或不会答(程序因为种种原因发生异常),这种情况下,我们不可能就卡在那道不会答的题目那里,然后直接放弃掉后面的那些题目,绝大多数的人会跳过这道题,然后继续答下去。python的异常捕捉处理程序也是如此,就是让程序暂时跳过发生异常的地方,然后继续执行下去,而不至于全盘崩溃。

    python异常处理的基本机构

    try:
        pass
    except Exception as err:
        pass
    

    异常处理的机制

    · 如上异常处理的基本机构,python的程序由上往下执行,到了try这里,先执行try里面的代码块,如果没有发生异常,则跳过except里面的代码块,继续执行其他的;
    · 如果在try里面的代码块当中发生了异常,那么在异常发生的下面的代码停止执行,并执行except里面的代码块,之后再继续往下执行其他的程序;
    · 异常捕捉需要匹配正确的异常类型(Exception),否则异常无法正确捕捉,这时,异常捕捉的任务会传达到上一级的try...except代码块去处理,以此类推,直到无法捕捉而抛出异常,程序继而终止;
    · 多个异常捕捉排列在一起时,程序也是自上而下执行,当异常一旦被捕捉,其他的except将不会继续执行;
    · Exception是通用的异常类型,可以捕捉任何一种异常,尤其方便之处,不过也尤其弊端,比如无法正确记录错误日志等。

    python异常捕捉的最基本的机制实例

    def examination():
        print('参加考试了!')
        try:
            print('这道题很容易,一下子就做完了!')
            print('这道题很难!')
            a = int('a12')
            print('跟这道题杠上了!')
        except ValueError as err:
            print('还是先跳过这道题吧,先把容易的有把握的分先拿下!')
        print('果然,下面的题很简单,考试不仅考大家的知识,还考大家的应对能力!')
    
    examination()
    ————————————————————————
    代码输出:
    参加考试了!
    这道题很容易,一下子就做完了!
    这道题很难!
    还是先跳过这道题吧,先把容易的有把握的分先拿下!
    果然,下面的题很简单,考试不仅考大家的知识,还考大家的应对能力!
    

    代码解析

    · 如上代码,try里面的代码a = int('a12')中,int()函数转换非数值型数据会发生异常,因为使用了异常处理的结构,所以,当代码执行到这里时,异常被except ValueEroor捕捉,然后执行except里面的代码,之后再执行程序中其他的代码;
    · ValueError是专门用来捕捉值异常的,如果使用了其他的异常类型将无法正确捕捉(除了Exception通用异常),那会怎么样呢?

    异常处理还有顺序机制、嵌套传递机制等等丰富实例,可查阅下面的内容:

    python异常处理,及异常处理的五大机制

    相关文章

      网友评论

          本文标题:用答卷实例通俗理解和深刻记忆:python异常处理五大机制

          本文链接:https://www.haomeiwen.com/subject/bdpybrtx.html