2

たとえば、テーブルに列が存在しない場合にのみ列を作成する必要がある場合、何を使用すればよいですか?

列が存在するかどうかを確認してから追加するコードを書くことができるので、メソッドを try-catch でラップすることでチェックなしで実行できます (存在する場合は例外をキャッチし、存在しない場合は例外をキャッチします)。 - 列が追加されます)

結果は同じになります。

また、多くの例があります。たとえば、ファイルをスキャンして存在するようにしてからコピーを作成し、例外をキャッチできます。

どちらの方法がより読みやすいですか、または正しいですか?

4

2 に答える 2

3

興味深いことに、あなたの質問は、話しているプログラミング言語によって異なります。

C、Java、C++、C# などの言語では、"LBYL" (Look Before You Leap) パターンが好まれます。一方、Python などの言語は「EAFP」を非常に強調しています (許可よりも許しを求める方が簡単です)。

意味: Python では、try/catchを多用しています (「ループのカウント」も try/catch として実装されています)。一方、C#、Java、C++ では、代わりに if/else を実行することをお勧めします。

そして、これらの規則に従うことが非常に重要です。ほとんどの Cx 言語プログラマーは、制御フローのモデル化に try/catch を使用しないと単純に想定しています。つまり、その言語の他の大多数の開発者が使用するパラダイムに従う必要があります。

于 2016-09-18T10:23:52.000 に答える
1

「正しい」方法はないと思います。どちらの方法でも機能するため、何があっても目標を達成できます。ただし、きれいなコードの場合、私の(非常に主観的な)見解は、例外は非常に「文字通り」のものとしてのみ使用され、例外的な(または予期しない)何かが発生したことを示すべきであるというものです。したがって、ほとんどの場合、ランタイムに例外を大量に送信するだけです。ただし、ドキュメントをスキャンしようとして、常に特定の数の列があると予想される場合は、例外を使用するのが正しい方法である可能性があります。列の数が間違っていると、例外が発生するからです。

于 2016-09-18T10:23:42.823 に答える