16-异常处理

异常处理

内容

  • 异常处理

  • 自定义异常


1. 异常处理

1.1异常概念

异常是程序执行过程中出现的非正常流程现象。

异常是无法避免的,只能先预估出可能出现的异常现象,并提供对应的处理机制,在异常出现后保障程序不被中断执行。

1.2异常处理基本语法

    格式一(常用):

       try:          

        ____可能引发异常现象的代码        

        except:

        ____出现异常现象的处理代码

在这里插入图片描述

格式二(不常用):

       try:          

        ____可能引发异常现象的代码        

        finally:

        ____try代码块结束后运行的代码

格式三(完整格式):

       try:         


        ____可能引发异常现象的代码        

        except:

        ____出现异常现象的处理代码

        else:

        ____未出现异常现象的处理代码

        finally:

       ____try代码块结束后运行的代码

   各代码块功能与执行说明:

在这里插入图片描述

1.3异常精细化处理

异常处理可以根据不同种类的异常进行不同的处理方案设计,使用异常名称来进行区分。标准格式如下:

    except 异常类名1 as

变量名:

    ____出现异常现象的处理代码

    except

异常类名2 as 变量名:

    ____出现异常现象的处理代码

    except

异常类名3 as 变量名:

    ____出现异常现象的处理代码

    except

Exception as 变量名:

    ____出现异常现象的处理代码

在这里插入图片描述

  说明:

   1.通过异常类名后面的变量名可以获取到具体异常信息

在这里插入图片描述

2.执行了某个except中的内容后,其他except中的内容将不再执行

3.Exception类是所有异常类的父类,能够拦截所有的异常现象,通常

设置成最后一级的捕获

1.4异常对象主动抛出

   异常现象可以使用主动抛出的形式来构造,语法格式如下:

       raise  异常类对象

在这里插入图片描述

注意:异常对象使用raise抛出时,通常是满足某中情况时抛出,否则将会出现程序执行到此处必定抛出异常。

1.5异常处理传递

    异常出现后如果没有被捕获处理,该异常将会继续向下传递,到下一次 调用位置。

   情况一:使用try嵌套继续处理

在这里插入图片描述

  情况二:函数/方法间调用,在任意调用位置处理

       最后调用处理                    中间调用处理

在这里插入图片描述


2. 自定义异常

2.1自定义异常基本语法

    class 自定义异常类名(Exception):           

       pass

2.2自定义异常主动触发

    raise 异常类对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值