• 异常处理


    总结:

        在可以知道异常是什么时候用if,在知道有异常但不确定异常是什么的情况下可用try

        尽量少使用try等,避免使结构看上去过于复杂

    1. 什么是异常处理
        异常是错误发生的信号,一旦程序出错就会产生一个异常,如果该异常
        没有被应用程序处理,那么该异常就会抛出来,程序的执行也随之终止
        异常包含三个部分:
            1. traceback异常的追踪信息
            2. 异常的类型
            3. 异常的信息
        错误分为两大类:
            1. 语法上的错误:在程序运行前就应该立即修正
            2. 逻辑上的错误(try , if)

    2. 为何要异常处理
        避免程序因为异常而崩溃,所以在应用程序中应该对异常进行处理,从而增强程序的健壮性
    3. 如何异常处理
    try:
        代码1
        代码2
        代码3
        ......
    except NameError:
        当抛出的异常是NameError时执行的子代码块
    except ....:
        pass
    except ...:
        pass
    else:
        print('else必须放到后面不能单独使用,必须与except连用,else的子代码块会在被检测的代码没有异常的情况下执行')
    finally:
        print('无论被检测的代码有没有异常都会执行')
        f.close()
    #
    ## 万能异常类型Exception as e:可以匹配任意类型的异常
    ##  except (nameerror,keyerror,indexerror...)as e:把要找的异常写成一行
    #

    try+except

    try+except+else

    try+finally

    try+except+else+finally


    # 主动触发异常
    # print('===>1')
    # print('===>2')
    # raise TypeError('类型错误')
    # print('===>3')
    # 自定义异常类型(了解)
    # class MyException(BaseException):
    #     def __init__(self,msg):
    #         super().__init__()
    #         self.msg=msg
    #
    #     def __str__(self):
    #         return '<%s>' %self.msg
    #
    # raise MyException('我自定义的异常')

    # 断言(了解)
    print('上半部分,生产数据')
    l=[1,2,3,4]
    # if len(l) != 5:
    #     raise TypeError('列表的长度必须为5')
    assert len(l) == 5
    print('下半部分,处理数据')
  • 相关阅读:
    读取XML示例:C#获取XML的数据
    GridView不換行
    List<T> 的条件筛选 where使用方法
    [HDU] 1016 Prime Ring Problem
    [HDU] 1072 Nightmare 和HDU1180有点类似
    [HDU] 1180 诡异的楼梯个人觉得比较有趣的广搜索
    [HDU] 1312Red and Black 用广搜求能探寻到的点的数目
    [HDU] 1026 Ignatius and the Princess I 简单建模后广搜索求最短路径生成树
    [HDU] 1010 Tempter of the Bone最基本的深搜
    [HDU] 1175 连连看 剪枝优化后的性能飙升
  • 原文地址:https://www.cnblogs.com/3sss-ss-s/p/9542686.html
Copyright © 2020-2023  润新知