raise的应用场景:

是否可以在程序的指定位置手动抛出一个异常?

答案是肯定的,Python 允许我们在程序中手动设置异常,使用 raise 语句即可。

你可能会疑惑,从来都是想方设法地让程序正常运行,怎么还要手动设置异常呢?

首先要分清楚程序发生异常和程序执行错误,它们完全是两码事:程序由于错误导致的运行异常,是需要程序员想办法解决的;但还有一些异常,是程序正常运行的结果,比如用 raise 手动引发的异常。

raise的基本语法结构​​raise exceptionName [(reason)]​

exceptionName :异常名称,须是定义好的错误类型,或本身存在的错误类型;

reason:异常描述;

其中,用 [] 括起来的为可选参数,如果可选参数全部省略,则 raise 会把当前错误原样抛出;如果仅省略 (reason),则在抛出异常时,将不附带任何的异常描述信息。


建议使用方式:

# 方式一
raise IOError
# 方式是二
raise TypeError('输入参数类型错误')

应用示例:

我们手动让程序引发异常,并不是为了让其崩溃。事实上,raise 语句引发的异常通常用 try except(else finally)异常处理结构来捕获并进行处理。

try:
a = input("输入一个数:")
#判断用户输入的是否为数字
if(not a.isdigit()):
raise ValueError("输入的%s不是数字,要求必须输入数字"%(a))
except ValueError as e:
print("引发异常:", repr(e))

print("输错了,异常发生,本程序也没有崩溃,正常运行到结束!!!")

python raise用法_错误类型


参考文章:

1.​​python raise超详细​​。