60.基础语法-异常的处理

报错类型

  • AssertError 断言语句(assert)失败
  • AttributeError 尝试访问未知的对象属性
  • EOFError 用户输入文件末尾标志EOF(Ctrl+d)
  • FloatingPointError 浮点计算错误
  • GeneratorExit generator.close()方法被调用的时候
  • ImportError 导入模块失败的时候
  • IndexError 索引超出序列的范围
  • KeyError 字典中查找一个不存在的关键字
  • KeyboardInterrupt 用户输入中断键(Ctrl+c)
  • MemoryError 内存溢出(可通过删除对象释放内存)
  • NameError 尝试访问一个不存在的变量
  • NotImplementedError 尚未实现的方法
  • OSError 操作系统产生的异常(例如打开一个不存在的文件)
  • OverflowError 数值运算超出最大限制
  • ReferenceError 弱引用(weak reference)试图访问一个已经被垃圾回收机制回收了的对象
  • RuntimeError 一般的运行时错误
  • StopIteration 迭代器没有更多的值
  • SyntaxError Python的语法错误
  • IndentationError 缩进错误
  • TabError Tab和空格混合使用
  • SystemError Python编译器系统错误
  • SystemExit Python编译器进程被关闭
  • TypeError 不同类型间的无效操作
  • UnboundLocalError 访问一个未初始化的本地变量(NameError的子类)
  • UnicodeError Unicode相关的错误(ValueError的子类)
  • UnicodeEncodeError Unicode编码时的错误(UnicodeError的子类)
  • UnicodeDecodeError Unicode解码时的错误(UnicodeError的子类)
  • UnicodeTranslateError Unicode转换时的错误(UnicodeError的子类)
  • ValueError 传入无效的参数
  • ZeroDivisionError 除数为零

Python的异常处理模块语法:

try:
    pass    #一段可能出现错误的代码
except error1:
    pass    #出现error1的异常处理代码
except error2:
    pass    #出现error2的异常处理代码
except (error3, error4, error5):
    pass    #出现error3,error4,error5的异常处理代码
except:
    pass    #出现所有异常的处理代码
else:
    pass    #没出现异常,将执行此代码
finally:
    pass    #无论有没有异常,都将执行此代码
try:
    #raise NameError               #raise + 异常类型 可以手动引发一个相应类型的异常
    a = int(input("请输入一个数字:"))
    b = 100/a
    print("100除以{}的结果为{}".format(a, b))
    
except ValueError as e:
    print("只能输入数字")
    print(e)

except ZeroDivisionError as e:
    print("除数不能为0")
    print(e)

except (NameError, SyntaxError):
    print("变量用错 或 语法有错误")

except Exception as e:             #Exception是所有报警类的父类,所以它能够接住一切报警,要把它写到最后except里
    print("就是出错了,出了什么错我也不知道了") 

else:
    print("哈哈没有错误,我被执行了")

finally:
    print("出没出错我都执行了")

自定义报警

  • 相当于自定义一个类,此类的父类必须是上面报警中的一个类或者"Exception"
  • class 异常名称(父类名):
    • 发生异常的异常代码
    • 发生异常后的问题提示
    • 发生异常的行数(位置)
posted @ 2020-02-22 18:08  TK_tank  阅读(106)  评论(0编辑  收藏  举报