2

私はフレームワークを使用していて、ソースコードがExceptionいくつかの場所でクラス(フレームワーク固有またはstdlibからのサブクラスではない)を使用して例外を発生させています。これは私の意見では良い考えではありません。

このイディオムに反対する主な論拠は、呼び出し元に、except Exception:意図した以上のことをキャッチできる使用を強制し、したがって、より低いスタックレベルで問題を隠すことです。

ただし、Pythonドキュメントをすばやく検索しても、この方法に反対する議論はありませんでした。チュートリアルには、この例もあります(ただし、Pythonスクリプトで問題ないことは、私のPythonフレームワークではまったく問題ない可能性があります。意見)。

それで、raise Exceptionpythonicと見なされますか?

4

2 に答える 2

7

PEP 8から:

モジュールまたはパッケージは、組み込みの Exception クラスからサブクラス化する必要がある独自のドメイン固有の基本例外クラスを定義する必要があります。

于 2012-09-26T07:27:37.380 に答える
1

いいえそうではありません。最低限、フレームワークは独自の例外クラスを提供する必要があり、おそらく複数の例外クラスを用意する必要があります (さまざまな問題が発生する可能性があるため)。

あなたが言ったexcept Exceptionように、あまりにも多くのことをキャッチし、良い習慣ではありません.

于 2012-09-26T07:28:30.670 に答える