ホームページ  >  記事  >  Java  >  Java の例外の概要

Java の例外の概要

王林
王林転載
2019-11-29 15:18:432516ブラウズ

Java の例外の概要

1. 例外とは

例外とは、プログラムの実行中に発生する異常な現象です。

try: 例外が発生する可能性がある場所でコードをラップします。例外が発生した場合、例外をスローします。

catch: 例外をキャッチして処理します。

finally: 例外が発生したかどうかに関係なく、例外が実行されます。

throw: 手動で例外を発生させます

throws: 呼び出されるメソッドの例外を定義します

##オンライン学習ビデオの推奨事項:

Java オンライン ビデオ##2. 例外の理由

## ユーザー入力エラー; コード エラー;

環境要因;

例外メカニズムにより、プログラムの堅牢性が保証されます。

3. 例外の分類

NullPointerExceptionNull 参照例外

IndexOutOfBoundExceptionSubscript out-of -bounds 例外

エラーはコンパイル環境に関連しており、Java 実行時の内部エラーおよびリソース枯渇エラーです。修正するのは非常に困難であり、ユーザーが修正することは期待されていません。

4. 例外情報の取得

プログラム内で例外が発生すると、プログラムは 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("程序发生了异常");
    	//}
    }
}

コンソールの結果:


例外は発生しません。それ自体で処理されますが、ステートメントを作成します。

Java の例外の概要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("这是手动抛出来的");
	}
}

6. try catch のネストされた使用finally

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 サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。