作者:乐檬 | 来源:互联网 | 2023-09-18 13:31
目录
什么是异常
常见异常
异常的处理
注意事项
什么是异常
异常是一个python对象,它会影响正常程序的进行,如果不抛出,会终止程序。
常见异常
BaseException | 所有异常的基类 |
IOError | 输入输出错误 |
Exception | 常见错误的基类 |
ZeroDivisionError | 取0错误 |
RuntimeError | 运行错误 |
异常的处理
1.try—except—else
- try是是开始有异常的捕捉块
- except捕捉不同的异常,执行捕捉该异常后的处理语句
- else则是没有异常时执行的语句
try:f1 = open('filename','w','utf-8')f1.write('wwwwwwww')
except IOError:print('没有找到')
else:print('成功')f1.close()
2.try—except—else—finally
- try是是开始有异常的捕捉块
- except捕捉不同的异常,执行捕捉该异常后的处理语句
- else则是没有异常时执行的语句
- finally是不管有没有异常都要执行的语句
try:f1 = open('filename','w','utf-8')f1.write('wwwwwwww')
except IOError:print('没有找到')
else:print('成功')f1.close()
finally:print('我一定执行')
3.raise抛出异常
创建一个异常的对象,可以层层向上抛出异常
def nozero():m = input()if 0 not in m:return me = Exception("请不要输入0")raise etry:pp = nozero() print(pp)
except Exception:print(Exception)
注意事项
发生异常时,执行第一个匹配该异常的except子句,所以第一个的异常类通常比第二个子类要小
如ValueError 是 Exception 的子类
a = (2,3,-4,5,6)
total = 0
try:for e in a:if e <0:raise ValueError(str(e) &#43; &#39;数值不能为负&#39;)else:total &#43;&#61; eexcept ValueError:print(&#39;数值不能为负&#39;)
except Exception:print(&#39;发生异常&#39;)else:print(total)finally:print("这是一个异常的deom")
则结果是&#xff1a;
如Exception 是 ValueError 的子类
a &#61; (2,3,-4,5,6)
total &#61; 0
try:for e in a:if e <0:raise ValueError(str(e) &#43; &#39;数值不能为负&#39;)else:total &#43;&#61; e
except Exception:print(&#39;发生异常&#39;)except ValueError:print(&#39;数值不能为负&#39;)else:print(total)finally:print("这是一个异常的deom")
则结果是&#xff1a;
JAVA的异常与python相似&#xff1a;
JAVA超详细&#xff1a;异常类型及处理&#xff08;含实例&#xff09;