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

    异常处理:处理可预见的错误,防止程序中断。

    name=['刚田武','朱二娃']
    data={}
    try:
        print(name[1])
        #print(data['pgtwo'])
    except KeyError as e:
        print('key 错了',e)
    except IndexError as e:
        print('索引出错',e)
    except Exception as e:      #放在所有except的最后,当不知道错误类型时执行
        print('未知错误',e)
    else:                       #没有错误时执行
        print('一切正常')
    finally:
        print('无论有没有错误都会执行。')
    

     也可以这样写except块:

    except (KeyError,IndexError) as e:
        print('key 错误或者索引错误',e)
    

     把多个异常类型写在一起,节省代码,但是出现异常时不能分辨出是哪一种。

    因为难以穷举错误类型,所以在结尾处写except Exception as e用来捕获大部分错误。缩进错误、语法错误会导致程序不能继续解释下去,无法捕获。

    在python2.x中语法如下:

    except Error_type,e:    #用逗号,不用as
        code
    

    自定义异常:[http://www.cnblogs.com/wupeiqi/articles/5017742.html]

    class MyException(Exception):
        def __init__(self, msg):
            self.message = msg
        def __str__(self):      #定义直接调用类时的返回值。基类Exception中已经有此方法,这里可以不写或者重构
            return self.message     #此处返回值如果不是self.message,则程序最终打印的就不是“自定义异常”
    try:
        raise MyException('自定义异常')
    except MyException as e:
        print(e)        #直接调用类时,类返回值由__str__()方法确定
    
  • 相关阅读:
    好玩的SQL
    Oracle常用函数
    树控件DeleteAllItems之前先SelectItem(NULL)
    MFC控件位置调整
    C++中一个0xC0000005访问冲突问题
    为MFC按钮添加各种图片
    LVN_ITEMCHANGED(OnItemchanged)通知响应多次的问题
    android 里边的mk文件的解析
    定义属于自己的标题栏
    block 影响代码执行由上往下执行顺序 从而影响功能的解决
  • 原文地址:https://www.cnblogs.com/zhhy236400/p/9786922.html
Copyright © 2011-2022 走看看