• Python异常(基础) except


    为什么要异常处理机制:
    在程序调用层数较深时,向主调函数传递错误信息需要层层return 返回比较麻烦,用异常处理机制可以较简单的传送错误信息

     什么是错误
     错误是指由于逻辑或语法等导致一个程序已无法正常执行的问题

    什么是异常 
    异常是程序出错时标识的一种状态
    当异常发生时,程序不会再向下执行,而转去调用此函数的地方待处理此错误并恢复为正常状态 

    异常作用: 
    用作信号,通知上层调用者有错误产生需要处理 

    异常处理语句:
        try-except 语句:
            用于接收异常通知,捕获异常
        try-finally 语句:
            执行必须要执行的语句
        raise 语句
            发送异常知通,并进入异常状态
        assert 语句
            根据条件选择性的发送AssertionError类型的异常通知 

    try 语句: 
    两种语法:
        try-except语句
        try-finally语句 

    try-except语句
    try-except语句语法: 
       try:
            可能触发异常的语句
        except 错误类型1 [as 变量1]:
            异常处理语句1
        except 错误类型2 [as 变量2]:
            异常处理语句2
        except (错误类型3,错误类型4, ....) [as 变量3]
            异常处理语句3
        ...
        except:
            异常处理语句(其它)
        else:
            末发生异常语句
        finally:
            最终语句


      作用:
        偿式捕获异常,将程序由异常状态转为正常状态并正常执行 

     try-except语句说明:
        1. as 子句是用于绑定错误对象的变量,可以省略
        2. except 子句可以有一个或多个,但至少要有一个
        3. else子句最多只能有一个,也可以省略不写
        4. finally子句最多只能有一个,也可以省略不写
        5. else子句的语句将在此try语句没有发生异常时被执行
        6. finally子句的语句在任何情况下都会被执行 

    try-finally 语句 
    语法:
        try:
            可能触发异常的语句
        finally:
            最终语句 

    说明:
        1. finally 子句不可以省略
        2. 一定不存在except子句

    作用:
        通常用try-finally语句来做触发异常时必须要处理的事情
        无论异常是否发生,finally子句都会被执行

    注意:
        try-finally 语句不会改变程序的(正常/异常)状态

    raise 语句
    作用:
        触发一个错误,让程序进入异常状态
        发送错误通知给调用者
    语法:
        raise 异常类型
        或
        raise 异常对象 

    assert 语句(断言语句) 
    语法:
        assert 真值表达式, 错误数据(通常是字符串)

    作用:
        当真值表达式为False时,用错误数据创建一个AssertionError类型的错误,并进入异常状态

    等同于:
        if 真值表达式 == False
           raise AssertionError(错误数据)

  • 相关阅读:
    为什么多线程读写 shared_ptr 要加锁?
    iOS开发那些事iOS6 UI状态保持和恢复
    Hook钩子程序(续)
    JavaScript 项目构建工具 Grunt 实践:任务和指令
    浏览器插件之ActiveX开发(五)
    mongodb副本集架构搭建
    Hadoop 0.23.3版本
    Grails 中使用 grailseventspush 实现 ajax/comet/websocket 消息推送
    razor中@相对于<% %>的优势
    Chrome developer tool介绍(javascript调试)
  • 原文地址:https://www.cnblogs.com/tan2810/p/10647143.html
Copyright © 2020-2023  润新知