博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python核心编程学习日记之错误处理
阅读量:6112 次
发布时间:2019-06-21

本文共 1241 字,大约阅读时间需要 4 分钟。

第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)对象

转载于:https://www.cnblogs.com/xyqhello/archive/2013/01/21/2867518.html

你可能感兴趣的文章
Windows phone 8 学习笔记(3) 通信
查看>>
重新想象 Windows 8 Store Apps (18) - 绘图: Shape, Path, Stroke, Brush
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
深入浅出NodeJS——数据通信,NET模块运行机制
查看>>
onInterceptTouchEvent和onTouchEvent调用时序
查看>>
android防止内存溢出浅析
查看>>
4.3.3版本之引擎bug
查看>>
SQL Server表分区详解
查看>>
使用FMDB最新v2.3版本教程
查看>>
SSIS从理论到实战,再到应用(3)----SSIS包的变量,约束,常用容器
查看>>
STM32启动过程--启动文件--分析
查看>>
垂死挣扎还是涅槃重生 -- Delphi XE5 公布会归来感想
查看>>
淘宝的几个架构图
查看>>
Android扩展 - 拍照篇(Camera)
查看>>
JAVA数组的定义及用法
查看>>