そこで、2 つの異なる方法 (if/else ステートメントと try/except ステートメント) で呼び出したいカスタム例外を作成しました。カスタム例外は次のとおりです。
class CustomException(Exception):
def __init__(self, value=None, *args, **kwargs):
self.parameter = value
for key, value in kwargs.items():
setattr(self, key, value)
for key, value in self.__dict__.items():
print "%s => %s" % ( key, value )
def __str__(self):
return repr(self.parameter)
カスタム例外を実装したい方法は次のとおりです。
try:
if something:
#make an error
;lsdfj
else:
raise CustomException('this is my custom message', file='somefile.txt', var2='something')
except Exception, e:
raise CustomException(e)
私の問題は 2 つあります。
1:ブロックで標準NameError
がスローされるとき (原因)、実装と同様に、「ファイル」などの追加のパラメーターを渡したい。どうすればいいですか?try/except
;lsdfj
CustomExceptions
if/else
2: カスタム例外が発生すると (if/else ステートメントが false であるため)、CustomExceptions クラスが 2 回呼び出されます。これは、if/else ブロックで例外を発生させ、except:
セクション内で再度発生させるためです。これを回避する方法がわかりません。
したがって、上記のケースでは、if-statement
が true でないときに CustomException を呼び出したいのですが、コード ブロック内でスローされた標準例外があるときに呼び出したいのですが、現在はif something:
false と評価され、CustomException
2 回発生します。 ...
したがって、カスタム例外をif/else
条件のコード全体で一方的に使用し、標準の python 例外を使用する必要があります...
私はこの説明が複雑であることを知っていますが、私が求めているものを他にどのように説明すればよいかわかりません...どんな助けも大歓迎です! 前もって感謝します!