AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包;基本上是路径问题或名称错误 IndentationError 语法错误(的子类) ;代码没有正确对齐 IndexError 索引超出序列边界,比如当x只有三个元素,却试图访问x[5] KeyError 试图访问字典里不存在的键 KeyboardInterrupt Ctrl+C被按下 NameError 使用一个还未被赋予对象的变量 SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了) TypeError 传入对象类型与要求的不符合 UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量, 导致你以为正在访问它 ValueError 传入一个调用者不期望的值,即使值的类型是正确的
try: #业务实现代码 except SubException as e: #异常处理块1 ... except SubException2 as e: #异常处理块2 ... else: #正常处理块 finally : #资源回收块 ...
ython 的异常机制主要依赖 try 、except 、else、finally 和 raise 五个关键字: try 关键字后缩进的代码块简称 try 块,它里面放置的是可能引发异常的代码; 在 except 后对应的是异常类型和一个代码块,用于表明该 except 块处理这种类型的代码块; 在多个 except 块之后可以放一个 else 块,表明程序不出现异常时还要执行 else 块; 最后还可以跟一个 finally 块,finally 块用于回收在 try 块里打开的物理资源,异常机制会保证 finally 块总被执行; raise 用于引发一个实际的异常,raise 可以单独作为语句使用,引发一个具体的异常对象; Python 完整的异常处理语法结构如下: 链接:https://www.jianshu.com/p/0ba916b753fa
# # try: # a=int(input('请输入1')) # b=int(input('请输入2')) # result=a/b # print('结果',result) # # except ZeroDivisionError: # print('sorry') # # except ValueError: # print('只能输入字符串') # # print('程序结束') ##############else 正确才执行 # try: # a=int(input('请输入1')) # b=int(input('请输入2')) # result=a/b # except BaseException as e: # print('出错了',e) # else: # print('结果',result) #################finally无论是否报错都会执行 try: a=int(input('请输入1')) b=int(input('请输入2')) result=a/b except BaseException as e: print('出错了',e) else: print('结果',result) finally: print('谢谢你的使用')