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

    常用异常:
        AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
        IOError 输入/输出异常;基本上是无法打开文件
        ImportError 无法引入模块或包;基本上是路径问题或名称错误
        IndentationError 语法错误(的子类) ;代码没有正确对齐
        IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
        KeyError 试图访问字典里不存在的键
        KeyboardInterrupt Ctrl+C被按下
        NameError 使用一个还未被赋予对象的变量
        SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
        TypeError 传入对象类型与要求的不符合
        UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
        导致你以为正在访问它
        ValueError 传入一个调用者不期望的值,即使值的类型是正确的
    异常处理:
        try:
            可能发生异常的代码
        except error1,error2… as e: 捕捉指定的一个或者多个错误,多个需要用括号括起来
            这里可以自定义输出发生错误时的提示信息
        except Exception as e: 这个可以捕获所有的错误类型,一般不建议在开头用
            这里可以自定义输出发生错误时的提示信息
        else:
            一切正常时执行
        finally:
            无论是否有错都执行
    

    异常处理Demo:

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    # Author:CarsonLi
    array=['carsonHai','BertLi']
    list={'age':25,'name':'BertLi'}
    str='Hello World!'
    try:
        int(str)
        print(array[3])
        print(list['sex'])
        open("CarsonHai")
    except IndexError as e:
        print("列表下标越界", e)
    except KeyError as e:
        print("字典不存在这个key", e)
    except ValueError as e:
        print("值的类型错误", e)
    except Exception as e:
        print("未知异常:",e)
    else:
        print("一切正常时执行")
    finally:
        print("无论是否有错都执行")

     执行结果:

    值的类型错误 invalid literal for int() with base 10: 'Hello World!'
    无论是否有错都执行
    

    自定义异常:

    #!/usr/bin/env python
    # _*_ coding:utf-8 _*_
    # Author:CarsonLi
    
    class BertError(Exception):
        def __init__(self,message):
            self.message=message
    
        def __str__(self):
            '''此方法不写时,默认返回message,也可自定义返回内容'''
            return self.message #"自定义异常"
    
    try:
        raise BertError("Bert异常")
    except BertError as e:
        print("自定义异常:",e)
        
    执行结果:
        自定义异常: Bert异常
    

      

  • 相关阅读:
    【转载】Android应用框架及常用工具类总结
    【Android】Android开发规范的一点小体会
    【Android】解决Android的ListView控件滚动时背景变黑
    【Android】侧边栏SlidingMenu
    【Android】解决RadioButton+FragmentPagerAdapter+Fragment切换页面数据加载的问题
    【Android】ListView动态视图显示不全
    Android编码规范
    【Android】两个日期相差几天和两个日期比较大小
    Linux基础之快照克隆、Xshell优化、Linux历史
    Android APP打包时,出错:"XXX" is not translated in "af" (Afrikaans), "am" (Amharic)
  • 原文地址:https://www.cnblogs.com/bert227/p/9786903.html
Copyright © 2011-2022 走看看