有没有一种方法可以;“联合国提高”;python中的异常?

有没有一种方法可以;“联合国提高”;python中的异常?,python,Python,我无法控制不必要地引发特定异常的python库 有没有办法用“安慰剂”异常子类来处理它?i、 e class MyException(Exception): def __init__(self, value): # literally do nothing. return to program flow pass 引发特定的异常 如果存在某个异常,则应通过在try except块的exception子句中指定异常类来处理该异常 安慰剂方法(即异常除外…)

我无法控制不必要地引发特定异常的python库

有没有办法用“安慰剂”异常子类来处理它?i、 e

class MyException(Exception):
    def __init__(self, value):
        # literally do nothing. return to program flow
        pass
引发特定的异常

如果存在某个异常,则应通过在
try except
块的exception子句中指定异常类来处理该异常

安慰剂方法(即
异常除外…
)只会沉默其他异常,因为异常通常源自
异常
,或者根本不起作用(对于您的新异常类),因为引发的异常显然不是源自新异常类


记住:

错误永远不应该以静默方式传递,除非显式静默

因此,我不明白您为什么要在不使用
try except
的情况下撤消引发的异常。这个例外并不是无缘无故提出的


如果希望避免每次调用此库中的函数时都使用
try except
,则可以编写一个包装函数,用
try except
包装调用,然后使用新函数

from somelib import func
from somelib import SomeException


def wrapper_func(*args, **kwargs):
    try:
         func(*args, **kwargs)
    except SomeException:
         pass

另一个答案是正确的,如果你正在处理一些奇怪的模块,你可以尝试一下

请注意,让异常安静地通过通常是一个非常糟糕的主意

无论如何,使用fuckitpy的基本方法是(引用文档):

也可从文件中获得:

import fuckit
#import some_shitty_module
fuckit('some_shitty_module')
some_shitty_module.some_function()
还在出错吗?连环呼叫。这个模块就像暴力:如果它不起作用,你只需要更多

import fuckit
fuckit(fuckit('some_shitty_module'))
# This is definitely going to run now.
some_shitty_module.some_function()


fuckitpy(GitHub)

您只想捕获异常吗?您无法通过修改初始值设定项来防止引发异常(这只会将异常作为一个值影响,而不是撤消
raise
)。由于存在特定的异常,您可以通过在
try except
块的except子句中指定异常类来处理异常。我可以这样做。我希望不要包装所有调用,并重新定义异常类或其他东西。我想“撤销提升”,如果我理解它,您想在另一个库中失败的地方继续原来的错误语句。对的似乎您想要定义另一个库将引发的异常,而不是它认为它正在引发的异常,并且异常对象的
\uuuuu init\uuuuuuuuu
将攻击系统以忽略错误。这就是目标吗?也许通过创建自己的副本以不同方式处理错误,可以更容易地对失败的函数进行修补。函数不太可能无条件引发异常,这意味着触发异常的条件是可以避免的。最好是识别并避免这种情况,而不是试图修改异常本身(顺便说一句,这不会阻止它被引发)。但这与“撤消”异常的行为不同。使用上面提到的,raise异常后的每一行都没有被执行。@Jared您似乎破坏了异常最初存在的原因。您将如何撤销一个
zero错误