1

小さな Python モジュールの作成に取り組んでいます。エラーが発生した場合、このモジュールがエラーを返すようにします。Pythonでエラーオブジェクトを作成する適切または標準的な方法は何ですか?

編集:エラーがどのように機能するかがわからないため、独自のエラーを作成する方法がよくわかりません(エラーをキャッチする方法を知っているだけですtry: ... except: ...)。だから今、私はエラーメッセージの下書きを作成しました。エラーは文字列です。何か予期しないことが起こったとき、私は and を出力しreturn Noneます。それは適切な方法ではないと思います:)

例:

    ...
    self.IsNotStringError = "Args was not a string."
    ...

def myMethod(self, args)
    """ Args must be a string. """
    if not isinstance(args, str):
       print IsNotStringError
       return None
    else:
        do things...

編集(bis):以下の回答を読んで、Pythonのドキュメントをさらに調べました。ユーザー定義の例外の作成方法に関するチュートリアルがあります。

ドキュメントの例:

class MyError(Exception):
    def __init__(self, value):
    self.value = value
    def __str__(self):
        return repr(self.value)
4

2 に答える 2

5

以下を継承することにより、独自の例外クラスを作成できますException

class YourError( Exception ): pass

次に、必要なときにいつでも上げてください。

raise YourError("error message")
于 2011-05-15T07:17:45.070 に答える
2

質問は常に次のとおりです。

  • エラーオブジェクトを返すか、
  • 例外の発生

それはすべて、個々のユースケースと達成しようとしていることに依存します。

多くの場合、明示的な例外の方が適しています。Exception から継承して独自の例外を作成すると、完全に制御できます。独自の例外のコンストラクターに任意の値を渡すのは簡単です。呼び出し元側で例外をキャッチし、例外の格納されたデータをイントロスペクトすることも簡単です。

メタ回答以上のものを期待する場合は、より具体的にする必要があります。

于 2011-05-15T07:17:44.007 に答える