zoukankan      html  css  js  c++  java
  • Python核心编程学习日记之错误处理

    第10章 错误处理

    1. 异常参数:无论 reason 只包含一个字符串或是由错误编号和字符串组成的元组, 调用 str(reason) 总会返回一个良好可读的错误原因. 这样做其实是调用类的特殊方法 __str__().
    2. else子句:在try范围中没有异常被检测到时,执行else子句。
    3. finally子句是无论异常是否发生,是否捕捉都会执行的一段代码。finally可以仅和try一起使用,也可以和try-except(else也是可选的)一起使用
    4. try-finally语句不是用来捕捉异常的,无论是否发生异常,finally代码段都会被执行
    5. 上下文管理
      1. with语句:基本语法
        with context_expr [as var]:
           with_suite
        
        with语句的目的在于从流程图中把try,except和finally关键字和资源分配释放相关的代码统统去掉。with仅能工作于支持上下文管理协议的对象。
      2. 上下文管理协议:

        上下文表达式(context_expr)与上下文管理器:当with语句执行时,便执行上下文表达式来获得一个上下文管理器。它会调用__context__()方法来提供一个上下文对象。

        上下文对象,with语句块:上下文对象会调用自身的__enter__()方法,完成with语句块执行前的所有准备工作。方法的返回值赋值给as后的变量.with语句块结束之后调用__exit()__方法。

    6. 触发异常

      1.5之前,标准异常基于字符串实现。后来,所有的标准异常都是类。现在可以使用字符串,但是不建议。(@deprecated)

      1. raise语句:
        raise[SomeException [, args, [,traceback]]]

        SomeException是触发异常的名字,必须是一个字符串,类或实例。args里包含着该例外可选的参数。异常的参数总是作为一个元组被返回。

        不含任何参数的raise重新触发前一个异常。如果之前没有异常,触发TypeError.

      2. 断言语句::如果断言成功,不采取任何措施,否则触发AssertionError的异常。语法如下:assert expression[,argument]
      3. 标准异常都是内建的。它们都从根异常BaseException派生的。直接派生的有Exception,SystemExit,KeyboardInterrupt.其他的内建异常都是Exception的子类。
    7. 创建异常
      1. tempfile模块包含了创建临时文件文件名和临时文件的方法
      2. 异常和sys模块

        通过sys模块中的exc_info()函数也可以获取异常。该函数返回三元组,分别是:exc_type,异常类;exc_value,异常类的实例;exc_traceback,追踪(traceback)对象

  • 相关阅读:
    备忘录
    中缀表达式转为后缀表达式
    未出现的最小正整数
    摩尔投票算法
    两个等长升序序列找中位数
    Morris二叉树遍历
    2020牛客寒假算法基础集训营5 街机争霸
    2020牛客寒假算法基础集训营5 牛牛战队的比赛地
    2020牛客寒假算法基础集训营2 求函数
    2020牛客寒假算法基础集训营2 建通道
  • 原文地址:https://www.cnblogs.com/xyqhello/p/2867518.html
Copyright © 2011-2022 走看看