4

Python では、ユーザー定義の例外を定義するのが一般的であるため、ユーザー定義のクラスでエラーが発生したときに、ユーザー定義のテスト/出力/その他のものを返すことができます。しかし、Pythonで特定のクラスの例外を処理するための良い習慣があるのだろうか? 詳細には、次の質問があります。

  1. クラス関連のすべての例外は、python クラスを定義するファイルに入れる必要がありますか、それとも特定のファイルに入れる必要がありますか?

  2. 例外が発生する可能性のあるケースに対して例外を定義する必要がありますか、またはクラスの一般的な例外を定義し、追加のテキストを提供してどこで何が間違った方法で発生したかの詳細を出力するだけで「OK」ですか? ?

  3. ユーザー定義の例外がどのように見えるか、どのように見えるべきかの例を誰かが投稿していただければ幸いです。そのため、独自の特定の例外クラスを定義することが良いことである理由を確認してください。

ありがとうアレックス

4

1 に答える 1

0
  1. Python プログラムのファイル レベルの編成は、メンテナンスを行っている場合を除いて、特に興味深いものではありません。モジュール レベルの構成は、API を決定するため (少なくともその時点では) はるかに重要importです。そのため、それらを使用するモジュールに例外があることを確認してください。

    一般的なセットアップは、パッケージのルートからパッケージのすべての例外をエクスポートすることですfrom foo import Foo, FooError, BarError。定義が同じファイルに存在するかどうかは、モジュール システムによって非表示にすることができます。

  2. 例外をキャッチすることを期待する細粒度に完全に依存します。ValueErrorただし、多くの場合、組み込みの例外 ( 、TypeErrorなど) が十分にきめ細かく設定されていることがわかります。パッケージで問題が発生する可能性がある特定の事柄については、1 つまたは複数の例外を追加できます。

  3. どうですか...

    class ParseError(Exception):
        def __init__(self, parser_input, line, column):
            self.input = parse_input
            self.line = line
            self.column = column
    
        def __str__(self):
            # format the exception message, showing the offending part of
            # self.input and what the parser was expecting.
    
于 2012-10-22T15:02:50.243 に答える