1. ホーム
  2. java

[解決済み] ランタイムエラーとコンパイラーエラーの違いは何ですか?[重複あり]

2022-03-13 23:01:26

質問

ploymorphismに関する私のプロフのスライドの1つに、いくつかのコメント付きのこのコード片があります。

discountVariable =              //will produce
  (DiscountSale)saleVariable;//run-time error
discountVariable = saleVariable //will produce
                                //compiler error

見ての通り、最初のキャスト文では 実行時 エラーが発生し、もう一方では コンパイルエラー .

これらのエラーの原因は何ですか?また、それぞれのエラーの違いは何ですか?

解決方法は?

ランタイムエラーは、コードが実際に実行されているときにのみ発生します。 これらは最も難しいもので、プログラムのクラッシュやコードのバグにつながり、その原因を突き止めるのは困難です。

例えば、「"hello"」という文字列を整数に変換しようとした場合です。

string helloWorld = "hello";
int willThrowRuntimeError = Convert.ToInt32(helloWorld);

コンパイラはこれを問題視しないかもしれませんが、実行時にはエラーが発生します。

コンパイラーエラーは、コードの不正確さによるものです。コンパイラーは、コンパイルできないもの、つまり実行できないものに対して警告を発するためにエラーを投げつけます。

コンパイラエラーの例としては、以下のようなものがあります。

int = "this is not an int";

お役に立てれば幸いです。