python如何引发和处理异常_在python3.6中,如何捕捉异常并引发异常以便稍后处理?...

假设我有两个例外:class FooError (Exception):

def __init__(self, *args, **kwargs):

default_message = 'A foo error has occurred!'

if not (args or kwargs): args = (default_message,)

super().__init__(*args, **kwargs)

class BarError (Exception):

def __init__(self, *args, **kwargs):

default_message = 'A bar error has occurred!'

if not (args or kwargs): args = (default_message,)

super().__init__(*args, **kwargs)

我有一个函数,它抛出FooError:

^{pr2}$

通常,您将使用try/except块来处理FooError:try:

foobar(-1)

except FooError:

print('Uh oh, foo error!')

sys.exit()

但是,我想抛出一个BarError,我可以稍后处理。像这样:except BarError:

print('Uh oh, bar error!')

sys.exit()

但是,在执行此操作时,我只得到两个错误的回溯:Traceback (most recent call last):

File "C:\Users\Maze\Desktop\test2.py", line 17, in

foobar(-1)

File "C:\Users\Maze\Desktop\test2.py", line 15, in foobar

raise FooError()

__main__.FooError: A foo error has occurred!

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "C:\Users\Maze\Desktop\test2.py", line 19, in

raise BarError()

__main__.BarError: A bar error has occurred!

如何在FooError的处理程序内抛出BarError,然后在另一个except块中处理BarError?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值