python学习24之异常
1. 广义上的错误分为错误和异常
错误指的是可以人为避免
异常是指在语法逻辑正确的前提下出现的问题
在python中,异常是一个类,可以处理和使用
2. 异常处理
不能保证程序永远正常运行,但是必须保证程序在最坏的情况下得到的问题被妥善处理。
python的异常处理模块全部语法为:
try:
代码模块1
except 异常类型1:
解决方案1
except 异常类型2:
解决方案2
except (异常类型1,异常类型2...):
解决方案:针对多个异常使用相同的处理方式
except:
解决方案:所有的异常的解决方案
else:
如果没有出现任何异常执行的代码
finally:
无论代码模块1出错与否都会执行的代码
除了except以外都是可选的
3. 抛出异常
当某些情况,用户希望自己引发一个异常的时候,可以使用
raise 关键字来抛出异常
try:
print("hello world")
raise ValueError
print("没想到吧") #这句话不能被执行
except ValueError:
print("出现了一个异常")
综上,执行顺序是:try执行过程中没有出现异常àelseàfinally
try出现异常à则从出现异常的点开始停止执行try中剩下的代码,直接跳转到对应except中去执行
4. 自定义异常
自定义异常必须是系统异常的子类
class 自定义异常(系统异常):
如:
class ZeroValueError(ValueError):
'''
定义一个异常类,是valueerror的子类,
该类的异常为如果你输入的值是0,则抛出这个异常
'''
def __init__(self):
print("你必须输入一个非0整数!")
try:
n=int(input("请输入一个整数:"))
if n==0:
raise ZeroValueError
except ZeroValueError:
pass