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

    异常:报错

    语法异常

    # 语法异常(错误都是SyntaxError)
    # if  # SyntaxError
    # 0 = 1  # SyntaxError
    

    逻辑异常

    # 逻辑异常(错误类型往往是不一样的)
    # 1/0
    # dic = {}
    # print(dic['skldfj'])  # KeyError
    
    

    常用异常

    • AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
    • IOError 输入/输出异常;基本上是无法打开文件
    • ImportError 无法引入模块或包;基本上是路径问题或名称错误
    • IndentationError 语法错误(的子类) ;代码没有正确对齐
    • IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
    • KeyError 试图访问字典里不存在的键
    • KeyboardInterrupt Ctrl+C被按下
    • NameError 使用一个还未被赋予对象的变量
    • SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
    • TypeError 传入对象类型与要求的不符合
    • UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,导致你以为正在访问它
    • ValueError 传入一个调用者不期望的值,即使值的类型是正确的

    其他异常

    • ArithmeticError
    • AssertionError
    • AttributeError
    • BaseException
    • BufferError
    • BytesWarning
    • DeprecationWarning
    • EnvironmentError
    • EOFError
    • Exception
    • FloatingPointError
    • FutureWarning
    • GeneratorExit
    • ImportError
    • ImportWarning
    • IndentationError
    • IndexError
    • IOError
    • KeyboardInterrupt
    • KeyError
    • LookupError
    • MemoryError
    • NameError
    • NotImplementedError
    • OSError
    • OverflowError
    • PendingDeprecationWarning
    • ReferenceError
    • RuntimeError
    • RuntimeWarning
    • StandardError
    • StopIteration
    • SyntaxError
    • SyntaxWarning
    • SystemError
    • SystemExit
    • TabError
    • TypeError
    • UnboundLocalError
    • UnicodeDecodeError
    • UnicodeEncodeError
    • UnicodeError
    • UnicodeTranslateError
    • UnicodeWarning
    • UserWarning
    • ValueError
    • Warning
    • ZeroDivisionError

    异常预防

    我们只需要记住exception就行了

    print(1)
    try:  # 尝试
        num = input('输入一个值')  # 123124
        dic = {'0': 'a'}
        print(dic[num])  # dic['123124']
    
        print(3)  # 代码自上而下,上面会运行
        1 / int(num)  # 错误不影响其他的代码,报错马上终止try缩进里面的代码
        print(4)
    
    except ZeroDivisionError as e:  # 除此之外  # try里面的代码出了什么错误,就得用什么错误捕捉   #as是把错误赋值给e
        print('e:', e)
    except KeyError as e:  # 可以写多个except捕捉多个异常
        print('e:', e)
    

    异常处理基本用不到

  • 相关阅读:
    JZ2440开发板开发环境搭建
    20180730-宿主机开发环境搭建
    20180319-双网卡电脑同时上内外网
    嵌入式ARM板子起步
    20180127-服务器开发环境搭建
    Pool多进程示例
    Python基础-day01
    解释型语言与编译型语言
    C 编译过程浅析
    博客奇谭
  • 原文地址:https://www.cnblogs.com/aden668/p/11311226.html
Copyright © 2011-2022 走看看