Oracleブロンズの勉強をしていて、コンパイルエラーと実行時エラーの区別が自分のなかでついていないなと思ったので、整理する。
簡潔にいうと、
コンパイルエラー:Javaの構文に問題がある。
実行時エラー:処理が不可能。具体的な値が入ってから発覚する。
コンパイルエラーは、かっこの閉じ忘れやセミコロンのつけ忘れに加えて、必要なクラスをimportしていなかったりする場合も起こる。
実行時エラーでよく見られるのは、Nullエラーだったり、配列のインデックスエラーだったり、実行してみてから、「あれ、これ不可能じゃね?」とわかるもの。一文ずつ検査した結果は問題ないけど、実際に動かしてみると、他のプログラムとの兼ね合いだったり、入ってくるデータとの兼ね合いでエラーになる。
とりあえず、コンパイルできるかどうかってところが大きな違い。普段出会っているのは実行時エラーのほうが多いのかな。文法についてはIDEが指摘してくれることが多いから、コンパイルはだいたい通っている気がする。