たいていの言語では、例外処理を書いていなくてもコンパイルできるけど、
Javaは、他の言語よりも厳しい

I/Oエラーは数十種類あるから、例外処理を書いていないアプリは、どこかで強制終了される

そういうアプリを、コンパイル時のチェックで、実行できないようにしているので、
一々デバッグして、エラーを確かめる必要がない