2016-10-31 3 views
0

私は時々状態が更新されるオブジェクトを持っています。しばらくすると、私は国家のことを聞きたい。しかし、アップデートによっては、私の国家はまだ質問する準備ができていないかもしれません。状態を早めに頼むと、私は例外を起こさせたいと思っています。それを行うPythonの正しい標準例外は何でしょうか?何もない場合 - 私は自分自身を書く必要がありますか?違法な状態が要求されたときに、どのようなPython例外を発生させるべきですか?

PS:標準的な例外リストをPythonで探しましたが、すべてのリストには、メモリ例外や算術例外などの低レベルの例外しか含まれていないようです。 Pythonの標準例外はありませんか?

+0

を使用して、それを上げるには、独自の例外と間違って自分自身、何も書きません。 – MooingRawr

答えて

2

ValueErrorが適切であるようです。それをサブクラス化することもできます。

class InvalidState(ValueError): 
    """Exception raised when the state is invalid""" 
    def __repr__(self): 
     return 'The state is invalid' 

その後raise InvalidState

+2

'ValueError'は通常、不正な値が関数に渡されたことを示します。ここでは、 'obj.get_state()'のような呼び出しのようです。代わりに 'RuntimeError'をサブクラス化したいと思います。 – chepner

+0

私は名前に 'InvalidState'を提案したいと思います。それは例外ですが、それにもその名前を付ける必要はありません。 – Alfe

+0

@Alfe:真実ですが、正式に物事の名前を付けるのに役立ちます。 Java/Scalaから来る:** IllegalStateException **と 'def __repr __(self、msg):' – Make42

関連する問題