1. 例外とは
例外とは、プログラムの実行中に発生する異常な現象です。
try
: 例外が発生する可能性がある場所でコードをラップします。例外が発生した場合、例外をスローします。
catch
: 例外をキャッチして処理します。
finally
: 例外が発生したかどうかに関係なく、例外が実行されます。
throw
: 手動で例外を発生させます
throws
: 呼び出されるメソッドの例外を定義します
## ユーザー入力エラー; コード エラー;
環境要因;
例外メカニズムにより、プログラムの堅牢性が保証されます。
3. 例外の分類NullPointerExceptionNull 参照例外
IndexOutOfBoundException
Subscript out-of -bounds 例外
エラーはコンパイル環境に関連しており、Java 実行時の内部エラーおよびリソース枯渇エラーです。修正するのは非常に困難であり、ユーザーが修正することは期待されていません。
プログラム内で例外が発生すると、プログラムは try から catch 文ブロックまで直接実行され、続行されません。ここで実行します。 public class text3 {
public static void main(String[] args) {
System.out.println("main开始执行");
text3 a=new text3();
a.text();
System.out.println("main执行结束");
}
public void text() {
int a;
try {
a=2/0;
System.out.println(a);
}catch(ArithmeticException e){
System.out.println("程序发生了异常");
}
}
}
例外がキャプチャされた後、プログラムは中断されません。
public class text3 { public static void main(String[] args) { System.out.println("main开始执行"); text3 a=new text3(); a.text(); System.out.println("main执行结束"); } public void text() { int a; //try { a=2/0; System.out.println(a); //}catch(ArithmeticException e){ //System.out.println("程序发生了异常"); //} } }
コンソールの結果:
Exception ステートメント: メソッドが生成した例外を処理せず、呼び出し階層に渡します。このメソッドを呼び出す人が例外を処理することを意味します。
5. 手動で例外をスローする例外をスローする; パラメーターの例外は、スローされる例外オブジェクトを表します。このオブジェクトはスロー可能クラスのサブクラスであり、 1つ。 public void text1() throws ArithmeticException{
}
public static void main(String[] args) {
Text t=new Text();
try {
t.text();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());
}
}
public void text() throws Exception {
//手动抛出异常
throw new Exception("这是手动抛出来的");
}
}
public class Textthrow { public static void main(String[] args) { double a=Math.random(); try { if(a>0.5) { System.out.println(a+"程序不报错"); } else { throw new Exception(); } }catch(Exception e) { System.out.println("这是外层捕获的对象"+e); try { a=1/0; }catch(ArithmeticException e1) { System.out.println("这是内层捕获的对象"+e1); }finally { System.out.println("这是内层的finally块"); } }finally { System.out.println("这是外层的finally块 "); } } }
7. 例外チェーン
定義: 2 つまたは複数の異なる同じプログラム内に例外が出現し、入れ子のスローが発生します。これを例外チェーンと呼びます。
public class ExceptionChainText { public static void main(String[] args) { Calculator c=new Calculator(); try { c.chufa(1, 0); }catch(NumberCalculateExcetption e) { e.printStackTrace(); System.out.println("错误原因"+e); } } } class Calculator{ public int chufa(int i,int j) throws NumberCalculateExcetption { if(j==0) { NumberCalculateExcetption e = new NumberCalculateExcetption ("计算错误"); NegativeNumberException e1= new NegativeNumberException("除数不能为0"); e.initCause(e1);//由e1引起的异常 throw e; } return 0; } } class NegativeNumberException extends Exception{ public NegativeNumberException(String msg) { super(msg); } } class NumberCalculateExcetption extends Exception{ public NumberCalculateExcetption(String msg) { super(msg); } }おすすめの関連記事とチュートリアル:
Java エントリー プログラム
以上がJava の例外の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。