English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
例外とエラーは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)