美文网首页
【13】异常

【13】异常

作者: Z_JoonGi | 来源:发表于2019-03-19 18:58 被阅读0次

    1.异常:

    程序错误,程序崩溃,程序中某条语句出现异常,那么从这条语句开始,后面的代码不会执行,程序直接结束

    2.异常捕获:

    让程序出现异常的时候,出现不崩溃

    1)方式一:捕获所有类型的异常

    a.语法

    try:
      代码段1
    except:
      代码段2
    finally:
      代码段3
    其他语句
    

    b.说明

    2)方式二:捕获指定的一个或多个异常,做相同的处理

    a.语法

    try:
      代码段1
    except 异常类型:
      代码段2
    finally:
      代码段3
    其他语句
    
    
    
    try:
      代码段1
    except (异常类型1,异常类型2):
      代码段2
    finally:
      代码段3
    其他语句
    

    b.说明

    • 先执行代码段1,如果代码1没有异常,直接执行后面的其他语句;
    • 如果代码段1出现异常,如果这个异常的类型和需要捕获的类型一致,程序不崩溃,直接执行代码段2,然后再执行其他语句;
    • 如果代码段1出现异常,如果这个异常的类型和需要捕获的类型不一致,程序崩溃
    注意:异常类型要求必须是直接或间接继承Exception类的子类

    3)方式三:捕获不同类型的异常,并且对不同的异常做不同的处理

    try:
      代码段1
    except 异常类型1:
      代码段2
    except 异常类型2:
      代码段3
    except 异常类型3:
      代码段4
    ...
    finally:
      代码段3
    其他语句
    

    3.finally

    • finally后面的代码段,不管try中的代码发生了什么,都会执行。

    4. 抛出异常

    a.语法
    raise 异常类型
    
    b.说明:
    • raise:关键字
    • 异常类型:可以是系统提供的异常类型,也可以自定义异常类型(必须继承Exception

    5.自定义异常类型

    写一个类继承Exception,然后重写__str __方法来自定义错误信息。

    class  WeekValueError(Exception):
        def __str__(self):
            return '错误'
        
    raise WeekValueError

    相关文章

      网友评论

          本文标题:【13】异常

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