比較表
比較基準 | エラー | 例外 |
---|---|---|
基本 | システムリソースの不足が原因でエラーが発生しています。 | コードが原因で例外が発生します。 |
回復 | エラーは回復不能です。 | 例外は回復可能です。 |
キーワード | プログラムコードでエラーを処理する方法はありません。 | 例外は3つのキーワード "try"、 "catch"、および "throw"を使用して処理されます。 |
結果 | エラーが検出されると、プログラムは異常終了します。 | 例外が検出されると、例外としてスローされ、 "throw"キーワードと "catch"キーワードによって捕捉されます。 |
タイプ | エラーは未チェックタイプとして分類されます。 | 例外は、チェックタイプまたは未チェックタイプに分類されます。 |
パッケージ | Javaでは、エラーは "java.lang.Error"パッケージで定義されています。 | Javaでは、例外は "java.lang.Exception"に定義されています。 |
例 | OutOfMemory、StackOverFlow。 | 確認された例外:NoSuchMethod、ClassNotFound。 未チェックの例外:NullPointer、IndexOutOfBounds。 |
エラーの定義
“ Error ”は組み込みクラス“ Throwable”のサブクラスです。 エラーは、システムリソースの不足によって発生する重大な条件であり、プログラムのコードで処理することはできません。 エラーは、作成、スロー、キャッチ、または返信できないため、決して回復することはできません。 エラーは、通常はプログラムで処理できない壊滅的な障害が原因で発生します。
コンパイラはその発生についての知識を持っていないため、エラーは常に未チェックタイプです。 エラーは常にランタイム環境で発生します。 エラーは例の助けを借りて説明することができ、プログラムはスタックオーバーフロー、メモリ不足エラー、またはシステムクラッシュエラーを持っています、この種のエラーはシステムが原因です。 コードはそのようなエラーに対して責任を負いません。 エラーが発生した結果、プログラムは異常終了します。
例外の定義
“ Exception”も組み込みクラス“ Throwable”のサブクラスです。 例外は、ランタイム環境で発生する例外的な状態です。 ほとんどの場合、例外はプログラムのコードが原因で発生します。ただし、例外は回復可能なので、例外はプログラム自体で処理できます。 例外は、3つのキーワード「try」、「catch」、「throw」を使用して処理されます。 例外を記述する構文は次のとおりです。
{//ここにコードを書いてください} Catch(Exception type){//ここにコードを書いてください}
上記のコードで、tryブロックに書かれているコードは、例外を監視したいコードです。 例外がtryブロックで発生した場合は、“ throw”キーワードを使用してスローされます。 スローされた例外は、上記のコードの「catch」ブロックによって捕捉される可能性があります。 「例外種別」は、発生した例外の種別です。
簡単な言葉で言うと、不適切なコードが原因で発生した間違いは例外と呼ばれます。 たとえば、要求されたクラスが見つからない場合、または要求されたメソッドが見つからない場合などです。 この種の例外はプログラム内のコードによるものです。 システムはこの種の例外に対して責任を負いません。 例外は「チェック済み」と「チェックなし」に分類されます。 チェックされていない例外は実行時に発生するため、コンパイラの知識はありませんが、コンパイラはコンパイル時にコンパイラに認識されるため、チェックされた例外に関する知識を持っています。
エラーと例外の主な違い
- システムリソースが不足している場合にのみエラーが発生しますが、コードに問題があると例外が発生します。
- エラーを回復することはできませんが、例外を処理するコードを準備することで例外を回復することができます。
- エラーを処理することはできませんが、例外をスローするコードがtry and catchブロック内に記述されている場合は、コードによって例外を処理することができます。
- エラーが発生した場合、プログラムは異常終了します。 一方、例外が発生した場合、プログラムは例外をスローし、それはtry and catchブロックを使用して処理されます。
- エラーは未チェックタイプです。つまり、エラーはコンパイラの知識にはありませんが、例外はチェック済みと未チェックに分類されます。
- エラーはjava.lang.Errorパッケージで定義されていますが、例外はjava.lang.Exceptionで定義されています。
結論:
例外はプログラムのコーディングで行われた間違いの結果であり、エラーはシステムの不適切な機能の結果です