私は、不必要に特定の例外を発生させるpythonライブラリを制御できません。Pythonで例外を "解除"する方法はありますか?
「プラシーボ」例外サブクラスでそれを処理する方法はありますか?すなわち
class MyException(Exception):
def __init__(self, value):
# literally do nothing. return to program flow
pass
私は、不必要に特定の例外を発生させるpythonライブラリを制御できません。Pythonで例外を "解除"する方法はありますか?
「プラシーボ」例外サブクラスでそれを処理する方法はありますか?すなわち
class MyException(Exception):
def __init__(self, value):
# literally do nothing. return to program flow
pass
特定例外
あなたは特定例外を持っている、あなたはtry-except
ブロックの除く句で例外クラスを指定することにより、例外を処理する必要があり上げます。
プラセボアプローチ(すなわちexcept Exception...
)唯一の例外は、通常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
例外を除いて、これと異なる動作をします。上記を使用して、raise例外の後の行は*実行されません*。 – Jared
@ Jared例外が最初に存在した理由を邪魔しているようです。どのようにして* ZeroDivisionErrorを元に戻す*でしょうか? –
他の答えが正しいですが、あなたは、いくつかの奇妙な/バギーモジュールを扱っている場合は、あなたが与えることができますfuckitpy
してみてください!
一般に、例外を静かに通過させることは非常に悪い考えです。
とにかく、fuckitpy
を使用するための基本的な方法は、(ドキュメントから引用)である。また、
import fuckit
#import some_shitty_module
fuckit('some_shitty_module')
some_shitty_module.some_function()
ドキュメントから:
はまだエラーを取得?チェーンfuckitコール。このモジュールは暴力のようなものです。うまくいかない場合は、それ以上のものが必要です。
import fuckit fuckit(fuckit('some_shitty_module')) # This is definitely going to run now. some_shitty_module.some_function()
fuckitpy (GitHub)
:https://github.com/ajalt/fuckitpy
あなただけの例外をキャッチしたいですか?初期化子( 'raise'を元に戻すのではなく、例外として値にしか影響しません)を変更することで、例外がスローされるのを防ぐことはできません。 –
特定の例外があるので、 'try-except'ブロックのexcept節に例外クラスを指定することで例外を処理できます。 –
できます。私はすべての呼び出しをラップし、例外クラスまたは何かを再定義しないことを望んでいました。私は "raiseを元に戻したい" – Jared