English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Javaにおける例外とエラーの違い

例外とエラーはThrowableクラスのサブクラスです。これは主にシステムリソースの不足による問題を示しています。私たちのアプリケーションは、これらのタイプの問題をキャッチすべきではありません。エラーの例としては、システムクラッシュエラーやメモリ不足エラーがあります。エラーは主に実行時に発生します。なぜなら、それらは未チェックのタイプに属しているからです。 

例外は実行時とコンパイル時に発生する可能性のある問題です。主に開発者が書いたコードで発生します。例外は、チェックされた例外と未チェックの例外の二つのカテゴリに分類されます。 

番号キーエラー例外
1
タイプ 
未チェックのタイプに分類されています 
既定のチェックと未チェックに分類されています 
2
パッケージ 
java.lang.errorに属しています 
java.lang.Exceptionに属しています 
3
可復元/不可復元
復旧不可能
復旧可能
4 
 コンパイル時に発生することはできません 
実行時とコンパイル時に同時に発生することができます 
5

OutOfMemoryError、IOError 
NullPointerException、SqlException 

エラーサンプル

public class ErrorExample {
   public static void main(String[] args){
      recursiveMethod(10)
   }
   public static void recursiveMethod(int i){
      while(i!=0){
         i=i+1;
         recursiveMethod(i);
      }
   }
}

出力結果

thread "main" java.lang.StackOverflowError
   at ErrorExample.ErrorExample(Main.java:42)

例外サンプル

public class ExceptionExample {
   public static void main(String[] args){
      int x = 100;
      int y = 0;
      int z = x / y;
   }
}

出力結果

java.lang.ArithmeticException: / by zero
   at ExceptionExample.main(ExceptionExample.java:7)