3

さまざまな種類の .txt ファイルを読み取る必要があります。そのために、最初に見出しが配置されている最初の数行を読み取ります。その情報で、私はそれを読む方法を選択することができます. 問題は、1 つのレコードだけが異なる形式 (Isubstring(0,45)と 40 文字しかないなど) の場合、アプリケーションがクラッシュすることです。これは避けたいのですが、すべての可能性をチェックすることはできません。try/catch を使いすぎないようにする必要があることを読みましたが、エラーの原因がわからない場合にのみ使用しています。

私の質問は: ループ (30k - 40k 回) で try/catch を使用するのは悪いことですか?

そうでない場合、どうすれば適切に使用できますか?例外の目的を完全には理解していません。それらはデバッグ専用ですか?throw new exceptionそうでない場合、との違いは何ですかMessageBox.Show("Error")

エラーについて通知せずにスキップする場合、次のように書くことができます。

try
{
//problematic code
}
catch
{
//nothing
//continue;
}
4

3 に答える 3

3

しかし、すべての可能性をチェックすることはできません

はい、できます!これが通常のやり方です。複雑な関数を設計するときは、すべてのケースについて考えたいと思うでしょう。考慮されていないすべてのケースは、潜在的なバグです。

そして、あなたのトライキャッチは、あなたが考えもしなかったバグを隠しています。例外に気付き、根底にある問題を修正できるように、例外をバブルアップさせたいと考えています。

すべての nullref および indexoutofbounds 例外は常にバグであるという規則に厳密に従ってください。これにより、最終的に時間を節約できます。

于 2013-08-02T17:41:14.880 に答える