zoukankan      html  css  js  c++  java
  • Python 教程阅读笔记(七):错误和异常

    有两种错误:语法错误和异常

    在执行时发现的错误称为异常,并不是无条件致命的

    处理异常:

    try:

    clause1

    except  Reason:

    clause2

    else :

    clause 3

    首先在try和except之间的语句执行,如果没有异常发生,except语句被略过。如果发生异常,剩下的语句将跳过。如果类型与except后的关键字有匹配的,则执行相应语句,然后再接着执行try后面的语句,如果没有匹配的,将传递到try语句的外层,如果仍无法处理,则为未处理异常。

    一个 except 中可以包含多个 异常。也可以有多个异常语句。最后一个except可以不包含异常名,而作为一个通配项。

    异常语句可以在异常名后面指定变量。变量属于异常实例,参数存在instance.args中。方便起见,异常定义了__str__()这样参数就可直接被打印而不需要引用.args。可以在抛出异常前实例化异常,增加任何想要的属性。

    raise语句用来强制抛出指定异常,如果想抛出异常而不处理,可直接使用raise

    用户自定义异常:通过创建新的异常类来命名自己的异常。异常通常是由Exception类直接或间接的导出的。异常类可以做其他任何类相同的事,但通常只提供一个属性,允许错误信息在异常时被对应的处理子抽取。__init__()   __str__()

    try:

    clause

    finally:

    clause

    finally语句用来在将要离开try语句前执行,不管异常是否发生。当异常发生时,且没有被处理时,将在finally执行完后重新被抛出。 任何其他的语句导致退出try语句如break,continue,return都会执行finally语句。 finally一般用于释放资源

    预定义的清除动作需要使用with语句,with语句保证像文件一样的对象能够被合理并正确的被清除

  • 相关阅读:
    JQuery Easy UI 1.7官网最新版附1.7API
    JS时间戳转换日期格式,附JS脚本详细用法
    JS原生对象实现异步请求以及JQ的ajax请求四种方式
    WebService跨域配置、Ajax跨域请求、附开发过程源码
    反射DataTable转实体类
    前端分页、及分页原理
    源码剖析之sun.misc.Unsafe
    JAVA并发编程学习笔记之CLH队列锁
    java 中的Unsafe
    AbstractQueuedSynchronizer源码解析之ReentrantLock(二)
  • 原文地址:https://www.cnblogs.com/westwind/p/2505475.html
Copyright © 2011-2022 走看看