创建自定义例外?

时间:2016-02-09 15:31:21

标签: python python-3.x

有没有办法缩短以下场景,所以我不必使用丑陋的嵌套try except语句?

class Error(Exception):
    def __init__(self):
        print("That did not work")
try:
    try:
        gblgbl
    except:
        raise Error
except Error:
    pass

我想要的可以描述为伪代码:

Try something:
    something
if something went wrong:
    raise Error
catch Error:
    what to do if error occours

如果try语句成功,我不想提出错误,但是如果我在异常语句中引发异常,如下所示:

try:
    gblgbl
except:
    raise Error
except Error:
    pass

它不能被其他人捕获,因为已经有一个除了捕获python异常并且解释器抛出一个SyntaxError。

我错过了一些明显的东西吗?

我知道你可能永远不会在实际程序中使用它,但我对这个理论感到好奇。

2 个答案:

答案 0 :(得分:1)

这里没有理由使用例外。以下(伪)代码实现了同样的目的。

try:
    gblgbl
except:
    pass

但是请注意,捕获所有异常通常是一个坏主意,因为例如KeyboardInterrupt异常也将被捕获,因此不能使用Ctrl-c

来中断程序

答案 1 :(得分:-1)

  

创建自定义例外?

Python TutorialUser-defined Exceptions

部分