2012-02-14 5 views
9

特定のファイル形式のパーサーを作成しています。ファイルが正しくフォーマットされておらず、解析できない場合、パーサーは例外をスローします。ファイルの解析エラーに使用する例外クラスは何ですか?

Python 2の例外階層で使用する例外クラスは何ですか? XyzParserがあなたのパーサクラスの名前です

+1

Pythonチュートリアルの[ユーザー定義の例外](http://docs.python.org/tutorial/errors.html#user- defined-exceptions)のセクションも参照してください。 –

+0

@Sven Marnach:パーサーはBoost.Pythonを使って書かれた拡張モジュールの一部です。そして、私はPython C-APIまたはBoost.Pythonを使って新しい例外クラスを引き出す方法を知らない。したがって、私は既存の例外クラスの1つを使用することを好みます。可能な候補はException、ValueError、IOErrorのようです。 – user763305

+0

http://stackoverflow.com/questions/2261858/boostpython-export-custom-exceptionを参照してください。実際の問題がboost.pythonでカスタム例外クラスを作成する方法である場合は、間違った質問をしました。 :) –

答えて

9

どの程度

class XyzParseError(Exception): 
    pass 

?標準ライブラリのHTMLParserもそうです。

+1

ValueErrorの代わりにExceptionから派生するのはなぜですか(jkbrの示唆どおり)? – user763305

+2

@ user763305:jkbrは 'ValueError'から*導出するのではなく、' ValueError'自体を使用するよう提案しました。 ValueErrorを除外している人は、 'XyzParseError'をキャッチしたくないので、' Exception'から派生しなければなりません。 –

+0

あまりにも多くの例外があり、すぐに使用できる例外クラスがあります.XyzParseErrorの必要はありません –

7

ValueErrorが適切であるようです。

+0

CSVファイルの解析中に私のために働いてくれてありがとう! –

関連する問題