0

実行時ではなくコンパイル時にエラーを見つけるほうがよいのはなぜですか? ここや他の場所で同じトピックを検索しましたが、適切な答えが見つかりませんでした.

4

4 に答える 4

6

一般に、ソフトウェア開発プロセスの早い段階でバグを発見するほど、バグを修正するのが速く/簡単/安価になるというのは事実です。通常、コンパイラ エラーまたは警告は、問題のあるコードの行を正確に示しますが、実行時にバグを見つけることは通常、はるかに時間と労力のかかるプロセスになります。さらに、バグがしばらくの間 (「潜在的な」バグ) 表示されない場合もあるため、将来のある時点でカスタマー サポートを提供し、ソフトウェア アップデートをバグの修正、結果として生じる評判の低下への対処など。

于 2012-04-23T20:55:42.683 に答える
2

基本的に、コンパイラはコンパイルのたびにすべてのコードを調べるため、検出できるエラーはすべてのコンパイルで自動的に検出されます。

実行時にエラーを検出するということは、エラーを検出するためにすべてのコードを実行する必要があることを意味します。これは、特に条件付きで実行される分岐が多数あるコードでは注意が必要です。また、エラーの正確な場所を特定するのは非常に難しい場合があります。

最終的には、できるだけ早くバグを見つけて、コードが新鮮なうちに修正できるようにすることです。

于 2012-04-23T20:57:59.733 に答える
1

エラーには、コンパイル時と実行時の 2 種類があります。エラーは診断と修正がはるかに簡単なため、コンパイル時にエラーが発生することをお勧めします。

基本的に、コンパイル時エラーは、構文エラー (タイプミス) または型エラー (変数の型を間違った方法で呼び出しまたは使用する) などがあるために、記述されたコードをビルドできず、コンパイラーが続行できないことを意味します。ただし、最近のコンパイラは、潜在的な実行時エラーを含むすべてのタイプのエラーを特定するために最善を尽くしています。これは、デバッグ プロセス中とは対照的に、コードを書いている間にこれらの問題を修正する方がはるかに安価で時間もかからないためです。通常、初歩的な「実行時」分析を実行できるコンパイラーでは、警告が表示されます。これは、コンパイラーがコードが不正であると考えていることを知らせる方法です。それはまだ警告シナリオで構築されていますが、警告は常に注意を払うべきものです。

実行時エラーが発生するのは、コードは正しいかもしれませんが、ロジックが間違っているか、ビルド中にコードに入るパラメーターをコンパイラが知る方法がないためです (ユーザー入力を考えてください)。実行時エラーの例としては、無限ループ、範囲外エラー、型エラー (数字を求められたときにユーザーが文字列を入力したと考えてください) などがあります。

肝心なのは、エラーが発生した後ではなく、エラーが発生したときに知ることができるときはいつでも、コードをよりクリーンで効果的なものに保つことができるということです。これが役立つことを願っています。:)

于 2012-04-23T21:14:26.543 に答える
1

また、@Paul Rが言ったことに加えて、コンパイルエラーは「簡単に」気づきます(コードをコンパイルして出来上がるだけです)が、実行時エラーはユースケースシナリオに固有である可能性があり、実行中にシステムがクラッシュする可能性があります展開されました。影響を考えて…

于 2012-04-23T21:00:09.957 に答える