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を作って、複数の異常を処理します。普通は親を後ろに置いています。
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(" ");
}
}
}