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,则程序终止,抛出异常。