zoukankan      html  css  js  c++  java
  • 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(错误数据)

  • 相关阅读:
    ylbASP.NET技术搭建不错的网站列表
    Arichmetic算法解析和面试经常出的算法题大总结
    Console算法递归算法示例
    ASP.NET MVC:解析 MVC+ADO.NET Entity(实体类)+Oracle
    PageDesign2010NetEase网易微博
    HTMLcolor:rgb()颜色渐进
    .NET创建虚拟表,将 SQL 表中的数据导入虚拟表
    Console算法冒泡排序法|倒水法
    WPF TranslateTransform的使用
    C# 泛型编程?
  • 原文地址:https://www.cnblogs.com/tan2810/p/10647143.html
Copyright © 2011-2022 走看看