zoukankan      html  css  js  c++  java
  • Python学习笔记(五)——异常处理

    Python 异常总结

    异常名称 解释
    AssertionError 断言语句(assert)失败:当assert关键字后边的条件为假时,程序将抛出该异常,一般用于在代码中置入检查点
    OSError 操作系统产生的异常(例如打开一个不存在的文件)
    OverflowError 数值运算超出最大限制
    ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收几只回收了的对象
    RuntimeError 一般的运行时错误
    StopIteration 迭代器没有更多的值
    SyntaxError Python的语法错误
    IndentationError 缩进错误
    TabError Tab和空格混合使用
    SystemError Python编译器系统错误
    TypeError 不同类型间的无效操作
    UnboundLocalError 访问一个未初始化的本地变量(NameError的子类)
    UnicodeError Unicode相关的错误(ValueError的子类)
    UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类)
    UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类)
    UnicodeTranslateError Unicode转换时的错误(UnicodeError的子类)
    ValueError 传入无效的参数
    ZeroDivisionError 除数为零

    Python的异常处理

    try语句

    try:
        sum = 1 + '1'
        f = open('文件.txt')
        print(f.read())
        f.close()
    #异常的统一处理
    except (OSError ,TypeError):
        print('出错了')
    

    try -finally 语句

    try:
        #检测范围
    except Exception[as reason]:
       # 出现异常(Exception)后的处理代码
    finally:
        #无论如何都会被执行的代码
    

    raise语句

    raise ZeroDivisionError('除数为零')
    Traceback (most recent call last):
      File "", line 1, in 
        raise ZeroDivisionError('除数为零')
    ZeroDivisionError: 除数为零
    

    else语句

    在Python中,else语句不仅能够和if搭配,也可以和循环语句for、while搭配使用,else也可以进行异常处理

    else与循环语句搭配使用时,当循环正常结束时不会进行else语句中的内容,只有遇到break语句,则else不执行

    try:
       print(int('abc'))
    except ValueError as reason:
        print('出错了' + str(reason))
    else:
        print('没有异常')
        
        出错了invalid literal for int() with base 10: 'abc'
    
    try:
       print(int('123'))
    except ValueError as reason:
        print('出错了' + str(reason))
    else:
        print('没有异常')
        
    >>> 
    123
    没有异常
    

    with语句

    try:  
        with open('data.txt','w') as f:  
            for each_line in f:  
                print(each_line)  
    except OSError as reason:  
        print('出错啦:' + str(reason))  
    

    使用with语句,避免打开文件没有关闭的情况

    try:
        f = open('data.txt','w')
        for each_line in f:
            print(each_line)
    except OSError as reason:
        print('出错啦:' + str(reason))
    finally:
        f.close()
    

    with的详细说明

  • 相关阅读:
    【连载3】二手电商的交易模式与业务价值
    【连载0】二手电商专题研究前言
    【连载2】二手电商平台的四要素
    【连载1】何为二手实物电商
    阿里的社区梦 能靠闲鱼完成吗?
    二手回收能否翻过BAT这座大山?
    把握这两点,抢占下一个电商风口|2016最新中国电商App排名&研究报告
    互联网巨头为何偏爱“二手货”?告诉你真实的理由
    2016中国app年度排行榜:十大行业、25个领域、Top 500 和2017趋势预测
    Eventbus 使用方法和原理分析
  • 原文地址:https://www.cnblogs.com/lelezuimei/p/11289071.html
Copyright © 2011-2022 走看看