zoukankan      html  css  js  c++  java
  • Python之异常处理

    异常处理

    1. 异常处理:程序一旦发生异常,就不会继续执行,所以我们需要使用处理这种异常。

      a. 使用if规避,但是成本很高

      b. try...except进行处理

    try:
        "没有出现expect异常时执行,只执行到出现expect中异常的地方"
    except "异常类型" as "变量名":
        "出现expect异常时执行"
        print("提示的内容%s"%"变量名")
    

      c. 一种错误类型,只能处理对应的一种错误,其他错误还会照常报错。

      d. expect多个,只执行第一个匹配的expect异常处理

    2. Exception:万能异常,只能判断有异常,没法判断具体的异常情况

      a. 对于已经可以预见的,但是必须要处理的,不能完全规避的必须要处理的异常,要去指定他的处理方式

      b. 对于不能确定的 ,使用万能异常

      c. 万能异常应该放在所有异常之后

    3. 异常处理中的else,try中的代码块没有发生异常时执行

    4. finally,无论try中的代码块有没有发生异常,都会执行

      a. 当发生了异常return时,还能执行finally,但是要先执行finally,再return

      b. 主要做一些清理的工作,把之前打开的链接 文件都关掉,避免因为程序异常造成的浪费资源和逻辑问题

    5. 装饰器

    def wrappr(func):
        def inner(*args,**kwargs):
            try:
                return func(*args,**kwargs)
            finally:
                "清理工作"
        return inner
    

     6. 顺序问题

    try:
        f = open("file")
        int(f.read())
    except ValueError:    # try中出现ValueError异常时执行
        print("读文件失败")
    except Exception as e:
        print(e)
    else:    # try代码块中没有异常的时候才会被执行
        print("操作成功")
    finally:    # finally代码块中的代码永远执行
        f.close()
    
    复制代码
    

     7. raise:主动触发异常

      assert:断言,类似if判断

    assert 1==2    # 报错,之后的程序都不会执行
    
    try:
        num = input("num:")
        int(num)
        print(num)
        a = 1
        sum(12,33,4)
    except ValueError:
        print("请输入一个数字")
    except NameError:
        print("命名错误")
    except TypeError:
        print("数据类型错误")
    

     

  • 相关阅读:
    基于jQuery的鼠标悬停时放大图片的效果制作
    让document.write的广告无阻塞的加载
    浅谈DOM事件的优化
    前端自动化构建和发布系统的设计
    parseQueryString
    元素缩放
    apply用法
    3D旋转
    CSS居中的多种方法
    System Center Configuration Manager 2016 域准备篇(Part2)
  • 原文地址:https://www.cnblogs.com/chitalu/p/12356163.html
Copyright © 2011-2022 走看看