java異常総括。

2748 ワード

自動回転http://blog.csdn.net/justdb/article/details/7875765corejava異常処理知識点まとめ
 
1.errorとexceptionの違いは何ですか?(Throwableの二つのサブクラスです。)
errorは回復は不可能ではないが、困難な場合には深刻な問題であるという。例えばメモリがオーバーフローします。このような状況はプログラムで解決できるとは期待できません。
exceptionは設計または実現問題を表します。つまり、プログラムが正常に動作すれば、発生しないということです。
         javaによくある異常:オフライン、空の針が異常で、数学演算が異常です。アクセス権限がありません。タイプ変換異常。
         異常は運転時異常と入出力異常に分けられます。
2.異常な処理メカニズム?
ifを多用すると、elseが処理してプログラムが冗長になります。
javaは異常処理機構を採用して、異常処理コードをまとめて、正常なコードと分けて、プログラムを簡潔にして、メンテナンスしやすいです。
投げ異常:
キャッチショットモデル:Javaプログラムの実行中に異常が発生したら、自動的に異常なクラスのオブジェクトが生成されます。このオブジェクトはjava実行時のシステムに提出されます。この過程は投げ異常といいます。(throw)
捕獲異常:
もし一つの方法が異常を投げたら、この異常は呼び出し方法に投げられます。異常が呼び出し方法で処理されていない場合、彼はこの呼び出し方法の使用者に投げられます。このプロセスはずっと続けられます。この異常が処理されていることを知っています。このプロセスは捕獲異常と呼ばれます。
異常があったらメールに戻ります。そしてメールの方法も処理しないとプログラム運転は終了します。
プログラマはexceptionしか処理できませんが、errorに対しては無力です。
try.ccach
tryの後ろに複数のcatchを置いて、異常ごとに一つのcatchを作って、複数の異常を処理します。普通は親を後ろに置いています。
 try

    {         
//
          
        
//
        ,               

    }    
catch
 (Exception e)
    {        
//
       

    }    
finally

    {        
//
          ,finally        

    }
カスタム異常とは、通常はクラスを定義し、Exceptionクラスまたはそのサブクラスを継承します。異常は直接または間接的にExceptionクラスから継承しなければならないからです。通常は、Exceptionクラスから直接継承されますが、通常はある運転時の異常クラスは引き継がれません。カスタム異常は、ユーザ登録エラー、ユーザ入力エラーメッセージなどの処理に利用できます。カスタム異常の例:カスタムの異常タイプ:
public class MyException extends Exception

{

    public MyException()

    {

        super();

    }    

    public MyException(String message)

    {

        super(message);

    }

}
         :
public class ExceptionTest4
{
    public void method(String str) throws MyException
    {
        if(null == str)
        {
            throw new MyException("           null!");
        }
        else
        {
            System.out.println(str);
        }
    }
    
    public static void main(String[] args) throws MyException //      1,      
    {
        ExceptionTest4 test = new ExceptionTest4();
        test.method(null);
    }
} 
         : 
public class ExceptionTest4
{
    public void method(String str) throws MyException
    {
        if (null == str)
        {
            throw new MyException("           null!");
        }
        else
        {
            System.out.println(str);
        }
    }
    public static void main(String[] args)
    {
        //      2,  try...catch  
        try
        {
            ExceptionTest4 test = new ExceptionTest4();
            test.method(null);
        }
        catch (MyException e)
        {
            e.printStackTrace();
        }    
        finally
        {
            System.out.println("      ");
        }
    }
}