六.Python中的异常

异常Exception

1.异常分类

  • 错误Error:
原因 示例
笔误 像变量名写错,造成的语法错误
逻辑错误 算法写错了,例如原本逻辑是求和,但写成了乘积
函数或者类使用错误 这类也归为逻辑错误

写代码时,错误是可以避免的。

  • 异常Exception
    有时候程序写的没有问题,也没有语法错误,但在某些情况下依然出现一些意外,导致程序无法正常执行,就是通常所说的异常。
    例如open函数操作一个文件,但该文件不存在,这就是一个异常。
    异常不可能全部避免的。

2.健壮的代码

健壮的代码要避免错误,捕获处理各种异常 。

  • 主动抛出异常
    raise 语句显式抛出异常,

  • 捕获异常
    try:
    待捕获异常的代码块
    except [异常类型]:
    异常处理

示例代码

num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
try:
	res = num1/num2
except ZeroDivisionError as e:
	print("除数不能为0:", e )

3.捕获异常:

  • 1.try ... except..
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
try:
	res = num1/num2
except ZeroDivisionError as e:
	print("除数不能为0:", e )
  • 2.try..except...finally...
num1 = int(input("请输入第一个整数:"))
num2 = int(input("请输入第二个整数:"))
try:
	res = num1/num2
except ZeroDivisionError as e:
	print("除数不能为0:", e )
finally:
	print("执行完毕")

finally 不管结果如何,最后都会执行

  • 3.else子句 较少使用
    try语句中的else,当try语句没有异常捕获时,执行else语句
try:
    pass
except Exception:
    pass
else:
    pass
finally:
    pass

总结:

try:
    pass
except Exception: #捕获异常处理
    pass
else:  #没有异常发生时执行
    pass
finally: #退出try,最终一定会执行
    pass
posted @ 2020-04-13 12:07  leafgood  阅读(145)  评论(0编辑  收藏  举报