Java 例外処理のthrowのサンプル

Javaの例外処理のthrowのサンプルです。

目次

throw

throwは、以下の機能があります。

機能その1
throw new 例外クラス名()
  • newを使って例外クラスをインスタンス化し、その例外をスローします。
  • スローした例外はcatchで捕まえます。
  • 任意の場所で任意の例外を発生させることができます。
機能その2
throw 例外インスタンス
  • 例外をスローします。
  • スローした例外はcatchで捕まえます。

 

throwするクラス

Throwableクラス

 

コード

newを使って例外クラスをインスタンス化し、その例外をスローするサンプルです。

9行目は、NullPointerExceptionクラスをインスタンス化しスローしています。ここでは説明用として強制的にNullPointerExceptionを発生させています。
 21行目は、catchで例外を捕まえています。

package test1;

class Sample  {
	static void runSample(){
		
		int i = 5;
		if (i == 5) {
			
			throw new NullPointerException(); 
			// throwで、例外(NullPointerException)を発生させる
		}
	}
}
public class Test1 {
	public static void main(String[] args) {

		try{
			Sample.runSample();
			
		// 例外をキャッチ
		}catch (NullPointerException e) {
			System.out.println(e); //java.lang.NullPointerException
		}
 	}
}

 

例外をスローするサンプルです。

7行目は、0で割っているのでArithmeticExceptionの例外が発生します。
9行目は、ArithmeticExceptionの例外をキャッチします。
12行目は、throw eで例外のインスタンスをスローしています。
23行目は、12行目でスローされた例外をキャッチしています。12行目のthrowがない場合は、ここのcatchブロックに入ってきません。

package test1;

class Sample  {
	static void runSample() {
		
		try {
			int i = 6/0;
		}
		catch(ArithmeticException e){
			System.out.println("エラー1");//エラー1
			
			throw e;
		}
	}
}
public class Test1 {
	public static void main(String[] args) {

		try{
			Sample.runSample();
			
		// 例外をキャッチ
		}catch (ArithmeticException e) {
			System.out.println("エラー2"); //エラー2
		}
 	}
}

 

独自のエラーメッセージを表示する

例外クラスのコンストラクタの引数に文字列をセットすると、getMessageメソッドで設定した文字列を取得することができます。

9行目は、コンストラクタの引数に文字列をセットしています。
21行目は、getMessageメソッドで設定した文字列を表示しています。

package test1;

class Sample  {
	static void runSample(){
		
		int i = 5;
		if (i == 5) {
			
			throw new NullPointerException("エラーです"); 
			// throwで、例外(NullPointerException)を発生させる
		}
	}
}
public class Test1 {
	public static void main(String[] args) {

		try{
			Sample.runSample();

		}catch (NullPointerException e) {
			System.out.println(e.getMessage());//エラーです
			System.out.println(e);//java.lang.NullPointerException: エラーです
		}
 	}
}

関連の記事

Java 検査例外のサンプル(チェック例外)
Java 非検査例外のサンプル(非チェック例外)
Java 独自の例外を作成するサンプル
Java printStackTraceとは



△上に戻る