유난스런 개발 기록

[JAVA] Day-17 _ 예외 던지기 (Exception Throws) 본문

개념정리/JAVA

[JAVA] Day-17 _ 예외 던지기 (Exception Throws)

yourhwan 2023. 2. 7. 19:29

day-17

예외 던지기 (Exception Throws)


예외 던지기 (Exception throws) 란 ? 

  • 특정 메소드에서 발생한 예외를 메소드를 호출한 쪽으로 떠넘겨 처리하도록 하는 것

 

그렇다면 왜 굳이 예외 던지기를 사용할까?

메서드 선언부에 throws 를 명시해 주어서 예외가 발생할 수 있는 코드가 있다는 것을 알려주고, 예외 처리를 강제(또는 유도)해줄 수 있다. 또한 발생 가능한 예외를 메서드에서 한 번에 처리해 주어 관리를 용이하게 해주는 효과가 있다.

 

사용 방법은 코드를 통해 직접 확인해보자.

Member

package my.day17.d.exceptionThrows;

public class Member {

// field 생성
	String name;
    String kor;
    String eng;
    String math;

// method 생성하여 예외 던지기 하기

	void info() throws Exception {
    	// 원래는 현재 메소드에서 예외를 처리해야하지만
        // info() 다음에 throws Exception 써주어 해당 메소드를 호출하는 쪽에서 예외처리를 하도록 한다.
    	int n_kor = Integer.ParsseInt(kor);
        int n_eng = Integer.ParsseInt(eng);
        int n_math = Integer.ParsseInt(math);
        
        int total = n_kor + n_eng + n_math;
        
        String info = = "1. 학생명 : " + name + "\n"
			+ "2. 국어 : " + kor + "점\n"
			+ "3. 영어 : " + eng + "점\n"
			+ "4. 수학 : " + math + "점\n"
			+ "5. 총점 : " + total + "점\n";
        
        System.out.println(info);
        
    }

}

 

Main

package my.day17.d.exceptionThrows;

public class Main {

	public static void main(String[] args) {
    
       try {    
            Member mbr = new Member();

            mbr.name = "이순신";
            mbr.kor = "90";
            mbr.eng = "80";
            mbr.math = "70";

            mbr.info(); // 이순신의 정보를 확인하는 메소드를 호출



            Member mbr2 = new Member();

            mbr2.name = "엄정화";
            mbr2.kor = "90";
            mbr2.eng = "팔십";
            mbr2.math = "70";

            mbr2.info(); // 엄정화의 정보를 확인하는 메소드 호출
            
         }catch (exception e) {
            System.out.println(">> 오류 메시지 내용 : " + e.getMessage() + " <<");
            // 오류 메시지를 확인할 수 있게 e.getMessage()를 사용하고 출력해준다.
       	   }// end of try~catch------------------------
        
	}// end of main()----------------------------

}