2017-03-10 45 views
0

我有一个关于try/except的问题。我有一个例外(我们称之为FooException),其中有一个status_code。我想处理异常只是如果status_code是200只处理一个异常代码

我会做这样的事情:

try: 
    ... 
except FooException as ex: 
    if ex.status_code == 200: 
     # do something 
    else: 
     # do something else 

是否有任何其他方式或本应该去罚款?

谢谢!

+0

可能重复的[Python:捕捉特定的异常](http://stackoverflow.com/questions/13531247/python-catching-specific-exception) – TemporalWolf

回答

1

没问题...请您的else:只需拨打raise,它会简单地重新提升当前的异常,并在其他地方处理。 (或pass,如果你只是想忽略。)

+0

是的。谢谢,我确信这是有效的,但不知道是否有另一种(更pythonic)的方式。 – porthunt

+0

您可以随时创建FooException的子类,例如,Foo200Exception让您的代码抛出_that_异常,但我都是为了可读性和简单性。在需要之前发明新的东西,而不是之前。准确地说是 – pbuck

+0

。这将是一个很好的解决方案。 – porthunt