非受検異常(運転時異常)と受検異常の違いなど

2491 ワード

javaの異常とエラーはjava.lang.Throwableから継承されています。
このクラスには二つの直接的なサブクラスのErrorとExceptionがあります。
今回は主にExceptionに関する情報を記録していますが、異常処理の際には、受検異常に接触します。 exception)と非受検異常(unchecked) exception)という2つの異常なタイプです。非受検異常とは、java.lang.RuntimeExceptionとjava.lang.Error類とそのサブクラスを指し、その他のすべての異常類を受検異常と呼びます。二つのタイプの異常は作用に違いがありません。唯一の違いは検査異常時の合法性をコンパイラでチェックすることです。そのため、受検異常は非受検異常よりも多くのコードを使ってコンパイルミスを避ける必要があります。
RuntimeException
RuntimeExceptionはデフォルトで自動処理されます。したがって、通常はRuntimeExceptionを捕獲する必要はありませんが、自分のパッケージの中で、RuntimeExceptionの一部を選択する必要があります。  RuntimeExceptionは可能性があります。 Java 仮想マシンが正常に動作している間に投げられた異常なスーパークラス。方法の実行中にドロップされるかもしれないが、捕獲されていないRuntimeExceptionの任意のサブクラスは、throwsサブルーチンで宣言する必要がない。(java api)
以下はuncheckedExcepitonです。
Java.lang.ArthmeticException
Java.lang.ArayStore Excetpion
Java.lang.CastException
Java.lang.EnumControntNot Present Exception
Java.lang.IllgalArgmentException
Java.lang.IL ThreadStation Exception
Java.lang.Number FormatException
Java.lang.IL MonitoStation Exception
Java.lang.Illagal Station Exception
Java.lang.IndexOutOfBounds Exception
Java.lang.ArayIndexOutOfBounds Exception
Java.lang.String IndexOutOfBounds Exception
Java.lang.NegativeAraySizeException’
Java.lang.Null PointerException
Java.lang.Security Exception
Java.lang.Type Not Present Exception
Java.lang.UnipprotedOperation Exception
CheckedException
runtimeException以外の異常は、すべてchecedExceptionに属し、それらはjava.langライブラリ内部で定義されています。Javaコンパイラはプログラムがこのような異常を捕獲または宣言する必要があります。
一つの方法は、throws文を通じて方法の声明の一部で、それが投げ出すかもしれないが、捕獲されていないすべてのcheckedExceptionを説明しなければならない。
Java.lang.lassNotFoundException
Java.lang.ColoneNot Supported Exception
Java.lang.Illegel Acception
Java.lang.InterruptedException
Java.lang.NoSuchFieldException
Java.lang.NoSuchMetodException
   これまでは、プログラムで検査異常を使うべきか、それとも非検査を受けるべきかについて
異常です。開発者の間には常に論争があります。結局、二つの異常はそれぞれ長所と短所があります。検査された異常の特徴は、開発者がコードの中で明示的な声明と捕獲を強制的に要求し、そうでないとコンパイルエラーが発生するということです。このような制限は良い面から言えば、開発者が意外にあるエラーを無視することを防止できます。コンパイラは未処理の検査異常が発生することを許さないからです。悪い面から言えば、検査異常はプログラム中の設計に対してより高い要求を提出しました。検査異常を適切に使用しないと、コードに多くの実際的な作用がなく、コンパイルによって追加されたコードが詰まってしまいます。検査異常ではなく、異常を捕まえないとコンパイルエラーが発生せず、異常が運転時刻に投げ出されるのが特徴です。
非受検異常のメリットは、不要な異常処理コードを除去することです。典型的な例としては、文字列を数字に変換するとjava.lang.Number FormatException異常が発生し、この異常を無視するとエラーの入力が原因でプログラム全体が終了します。
現在の主流の意見では、非受検異常を優先的に使うことが望ましい。
回転:http://blog.csdn.net/nlznlz/article/details/53271045