python 异常处理
捕获异常:
在程序执行过程中出现错误,程序将会抛出异常信息,并停止退出;可以通过try捕获异常打印出,但整个程序不会被中断;
如果错误没有被捕获,它就会一直往上抛,最后被Python解释器捕获,打印一个错误信息,然后程序退出。
try: #检测语句中的代码执行是否正常 num = int(input('your idea >>>')) sums = num + 100 except Exception as e: #try代码异常则捕获 print(e) else: #try代码正常则执行 print('正常') finally: #无论怎样最后都执行 print('结束')
如果input输入一个数字,代码执行过程:try(全部) >> else >> finally
如果input输入一个非数字,int()方法处理非数字会异常,则跳过下面的代码,直接捕获异常,代码执行过程:try(异常处) >>except >> finally
抛出异常:
捕获一个错误实际是捕获到异常class的一个实例。因此,错误并不是凭空产生的,而是有意创建并抛出的。Python的内置函数会抛出很多类型的错误,自己编写的函数也可以抛出错误。
如果要抛出错误,首先根据需要,可以定义一个错误的class,选择好继承关系,然后,用raise
语句抛出一个错误的实例:
class MyError(Exception): #继承Exception类 pass n = input('your idea >>>') print('开始') if n == '0': raise MyError() #抛出MyError类型异常 print('结束')
如果在input中输入一个0,则程序终止,抛出异常。