Python 创建自定义异常?
有没有办法缩短以下场景,这样我就不必使用难看的嵌套try-except语句Python 创建自定义异常?,python,python-3.x,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
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语句成功,我不想引发错误,但是如果我在exception语句中引发异常,如下所示:
try:
gblgbl
except:
raise Error
except Error:
pass
不能用other-except捕获它,因为已经有一个except捕获python异常,并且解释器抛出一个SyntaxError
我错过了什么明显的东西吗
我知道你可能永远不会在实际的程序中使用它,但我对这个理论很好奇。这里没有理由使用异常。下面的(伪)代码实现了相同的功能
try:
gblgbl
except:
pass
但是请注意,捕获所有异常通常不是一个好主意,因为例如,
键盘中断
异常也会被捕获,因此不能使用Ctrl-c
中断程序。这里没有理由使用异常。下面的(伪)代码实现了相同的功能
try:
gblgbl
except:
pass
但是请注意,捕获所有异常通常不是一个好主意,因为例如,KeyboardInterrupt
异常也会被捕获,因此不能使用Ctrl-c
中断程序
创建自定义异常
这本书有一节是关于
创建自定义异常
除了@jefcabatingan提到的问题之外,我认为这已经有了一个关于的部分。你所要做的就是将任何异常(除了
gblgbl
执行时)转换为错误
异常,然后立即处理它。你真的不需要内部异常子句来做这件事。除了@jefcabatingan提到的问题之外,我认为这已经有了答案。你所要做的就是将任何异常(除了gblgbl
执行时)转换为错误
异常,然后立即处理它。您不需要使用内部异常子句来执行此操作。当然,但我可以计算错误类的类变量中发生此异常的次数。但这仍然忽略了异常的意义,即向调用方发出错误信号。您的示例也可以使用任何其他计数器来实现,并且不需要单独的try
-,除了
。当然可以,但我可以计算错误类的类变量中发生此异常的次数。但这仍然忽略了异常的要点,即向调用方发出错误信号。您的示例也可以使用任何其他计数器来实现,并且不需要单独的try
-,除了
。