Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

Everything has an expiration date

★ 153 - Java 예외처리(Exception Handling) : 총 두 가지의 예외 생성하여 빨강, 파랑 폭탄으로 구분하고 그 예외(폭탄)들이 어떻게 처리되는지를 번호 순서대로 나타낸 프로그램 본문

[Java]/Program source (java)

★ 153 - Java 예외처리(Exception Handling) : 총 두 가지의 예외 생성하여 빨강, 파랑 폭탄으로 구분하고 그 예외(폭탄)들이 어떻게 처리되는지를 번호 순서대로 나타낸 프로그램

Jelly-fish 2023. 9. 20. 16:06
/* ============================================
  ■■■ 예외 처리(Exception Handling) ■■■
=============================================*/

// 다른 예외 다시 던지기

public class Test153
{
	public int getValue(int value) throws Exception		// ⑦ 예외 던지기
	{							//    (파랑 폭탄)
		int a = 0;
		
		try
		{
			a = getData(-2);			// ③ 예외 발생
								//    (빨강 폭탄)
		}
		catch (Exception e)				// ④ 예외 잡아내기
		{						//    (빨강 폭탄)
			// ⑤ 예외 처리(빨강 폭탄)														
			System.out.println("printStackTrace ........................");
			e.printStackTrace();
			
			// check~!!!
			// ⑥ 예외 발생(파랑 폭탄)
			throw new Exception("value 가 음수입니다.");
			// 새롭게 예외를 발생시켰기 때문에 무조건 throws Exception 을 써줘야 한다.
		}

		return a;
	}

	public int getData(int data) throws Exception		// ② 예외 던지기
	{							//   (빨강 폭탄)
		if (data < 0)
		{
			throw new Exception("data 가 0 보다 작습니다.");	// ① 예외 발생
		}														// (빨강 폭탄)

		return data + 10;
	}



	public static void main(String[] args)
	{
		Test153 ob = new Test153();

		try
		{
			int a = ob.getValue(-2);		// ⑧ 예외 발생
			System.out.println("a : " + a);		//    (파랑 폭탄)

		}
		catch (Exception e)				// ⑨ 예외 잡아내기
		{						//    (파랑 폭탄)
			System.out.println("printStackTrace ........................");
			e.printStackTrace();

		}

	

	}
}

// 실행 결과

/*
printStackTrace ........................
java.lang.Exception: data 가 0 보다 작습니다.
        at Test153.getData(Test153.java:37)
        at Test153.getValue(Test153.java:15)
        at Test153.main(Test153.java:51)
printStackTrace ........................
java.lang.Exception: value 가 음수입니다.
        at Test153.getValue(Test153.java:26)
        at Test153.main(Test153.java:51)
계속하려면 아무 키나 누르십시오 . . .

*/