python中raise的用法
Python中的raise句可以用来主动抛出异常,为程序提供了一种有效的异常处理机制。与其他编程语言一样,Python 也有 try/except用于捕获异常,但它还允许使用 raise句来主动抛出异常以实现更复杂的异常处理机制。
要使用 raise句,必须要知道一些与异常有关的内容,Python 中的异常分两种:内置的异常和自定义的异常,内置的异常就是 Python经内置好的异常,比如 ZeroDivisionError、TypeError,而自定义的异常则是用户自己定义的异常,异常也是一个类,但是它的定义需要继承自 Exception,它的定义方法如下:
class MyError(Exception):
def __init__(self, value):
self.value = value
python的try和except用法 def __str__(self):
return repr(self.value)
MyError一个用户定义的异常类,它继承自 Exception,在初始化时,可以传入自定义的参数,以实现不同的功能,另外,还需要重写 __str__法,以实现自定义信息的显示。
既然了解了异常和自定义异常,那么接下来就可以了解一下 Python 中 raise用法了。
在 Python 中有四种 raise用法:
1、raise句可以主动抛出内置的异常,例如:
try:
a = 10/0
except:
raise ZeroDivisionError(分母不能为 0
这段代码中,当发生除 0操作时,将会抛出 ZeroDivisionError常,并显示异常信息“分母
不能为 0”。
2、raise句可以主动抛出自定义的异常,例如:
try:
a = int(abc
except:
raise MyError(输入的不是数字!
这段代码中,当输入的不是数字时,将会抛出 MyError常,并显示异常信息“输入的不是数字!”
3、raise句可以主动抛出多个异常,例如:
try:
a = int(abc
except:
raise ZeroDivisionError, MyError, 输入的不是数字!
这段代码中,当输入的不是数字时,将会抛出 ZeroDivisionError MyError常,并显示异常信息“输入的不是数字!”
4、raise句可以主动抛出以前抛出过的异常,例如:
try:
num = input(请输入一个数字:
if num == 0:
raise ZeroDivisionError
except ZeroDivisionError:
print(你输入了0,不能进行除法运算!
raise
这段代码中,当输入的数字为 0,将会抛出 ZeroDivisionError常,并显示异常信息“你输入了0,不能进行除法运算!”,并且raise语句又用次抛出 ZeroDivisionError常,以实现重新抛出以前的异常。
以上就是 Python 中 raise用法,作为程序员,当遇到异常时,有时需要把异常抛出来,再用 try/except捕获并处理这些异常,才能让程序正常运行,此时就需要活用 raise句,以实现复杂的异常处理机制。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论