例外とエラーの違い

Anonim

例外対エラー

などのイベントです。プログラムの実行中に予期しない動作が発生することがあります。これは、例外またはエラーが原因である可能性があります。例外はイベントであり、通常のプログラムフローを妨げる可能性があります。エラーとは、取り返しのつかないと考えられる条件です。例外はほとんどがアプリケーション自体に関連し、エラーはプログラムが実行されているシステムに関連しています。

<! --1 - >

例外とは何ですか?

例外はイベントであり、通常のプログラムの流れを妨げる可能性があります。名前の例外は「例外的なイベント」に由来します。例外をスローすることは、例外オブジェクトを作成し、それをランタイムシステムに渡すプロセスです。 Exceptionオブジェクトは、例外が発生したメソッドによって作成されます。 Exceptionオブジェクトには、例外の種類や説明などの有用な情報が含まれています。ランタイムシステムが例外オブジェクトを受け取ると、コールスタック内でそれを処理する誰かを見つけようとします(メソッドが呼び出された逆の順序でそれをトラバースします)。呼び出しスタックは、例外が発生したメソッドの前に呼び出されたメソッドの順序付きリストです。実行時システムは、例外ハンドラを持つメソッドを検出すると成功します。例外ハンドラは、前記例外を正式に処理できるコードブロックです。実行時システムが適切なハンドラを見つけた場合(すなわち、処理可能な型と一致する例外の型)、例外オブジェクトをハンドラに渡します。これは、例外のキャッチと呼ばれます。ただし、例外を処理できない場合、プログラムは終了します。 Javaでは、例外は「Throwableクラス」から継承します。 'NullPointerExceptionとArrayIndexOutOfBoundsExceptionは、Javaの2つの一般的な例外です。

エラーとは?

エラーは、使用可能な量よりも大きなメモリ量を必要とするプログラムなど、回復不能とみなされる状態です。これらのエラーは実行時には処理できません。エラーが発生すると、プログラムは終了します。 Javaでは、エラーはThrowableクラスを継承します。エラーは通常、プログラマ(またはアプリケーション)がキャッチしようとするべきではない重大な問題を表しています。エラーは単に異常な状態であり、通常の状況下では起こりそうにないため予期されません。たとえば、OutOfMemoryError、StackOverflowError、およびThreadDeadはこのようなエラーです。メソッドは決してエラーのハンドラを持つべきではありません。

例外とエラーの違いは何ですか?

エラーと例外の両方は、プログラムの実行中に望ましくない発生である。しかし、それには大きな違いがあります。プログラマは例外を予見することができますが、エラーを予測することは困難です。例外はチェックすることも、チェックを外すこともできます。しかし、エラーは常にチェックされていません。例外は、通常、プログラマに起因するエラーを示します。ただし、システムエラーやリソースの不適切な使用によってエラーが発生します。したがって、例外はアプリケーションレベルで処理する必要がありますが、エラーはシステムレベルで処理する必要があります(可能な場合のみ)。例外を処理した後は、通常のプログラムフローに戻ります。しかし、たとえエラーが捕捉されても、プログラマは最初にそれをどのように扱うかを知らないかもしれません。従来のエラー処理とは異なり、例外により、エラー処理コードを通常のコードから分離することができます。