异常处理

异常:报错

语法异常

# 语法异常(错误都是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)

异常处理基本用不到

原文地址:https://www.cnblogs.com/aden668/p/11311226.html