투케이2K

239. (java/자바) throws Exception 사용해 예외 상황 체크 및 try catch 구문에 예외 발생 리턴 실시 본문

Java

239. (java/자바) throws Exception 사용해 예외 상황 체크 및 try catch 구문에 예외 발생 리턴 실시

투케이2K 2022. 1. 23. 10:47

[개발 환경 설정]

개발 툴 : Eclipse

개발 언어 : Java

 

[소스 코드]

package ex;

public class MainActivity6 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println("[Program Start]");
		System.out.println("");
		
		
		/* [요약 설명]
		 * 1. throws exception : 프로그래머가 임의로 exception을 강제로 발생 시켜 예외 상황을 알려주는 것입니다
		 * 2. exception 을 정의한 메소드는 throws 키워드를 사용해서 예외를 리턴 시켜줍니다
		 * 3. throws exception 메소드를 사용하는 코드쪽에서는 throws 에서 정의한 예외 부분을 모두 정의해 줘야합니다
		 * */
		
		
		// [초기 변수 선언 실시]
		String one = "10";
		String two = ""; // 예외 상황을 체크하기 위해 임의로 널 값 지정 실시
		System.out.println("[합계 연산 요청 실시]");
		System.out.println("one : " + one);
		System.out.println("two : " + two);
		System.out.println("");

		
		// [메소드 호출 수행 및 결과 확인 실시]
		try {
			int data = sum(one, two);
			System.out.println("[합계 결과] : " + data);
			System.out.println("");
		}
		catch (NumberFormatException e1) {
			System.out.println("[catch] [NumberFormatException] : " + e1.getMessage());
			System.out.println("");
		}
		catch (NullPointerException e2) {
			System.out.println("[catch] [NullPointerException] : " + e2.getMessage());
			System.out.println("");
		}
		catch (Exception e3) {
			System.out.println("[catch] [Exception] : " + e3.getMessage());
			System.out.println("");
		}

	}// 메인 종료
	
	
	// [예외 던지기를 수행하는 메소드 선언 실시]
	public static int sum (String a, String b) 
			throws NumberFormatException, NullPointerException, Exception { 
		
		/*
		 * [세부 설명]
		 * 1. 인풋값으로 들어온 String 변수를 int 형으로 변환 후 합계를 반환하는 메소드 입니다
		 * 2. NullPointerException : 인풋값으로 들어온 초기 string 데이터가 널인 지 판단해서 널인 경우 exception 을 발생시킵니다
		 * 3. NumberFormatException : string to int 로 데이터 형 변환 시 발생할 수 있는 exception을 정의해줍니다
		 * 4. Exception : 정의한 예외 상황 외에 발생한 결과를 리턴하기 위해 선언해줍니다
		 * 5. 모두 정상적으로 로직이 성공한 경우 리턴값으로 int 형 합계를 반환합니다
		 * */
		
		
		// [결과를 반환할 변수 선언 실시]
		int returnData = 0;
		
		
		
		// [일반적으로 전체 try catch 구문 선언 실시]
		try {
			
			// [인풋 값으로 들어온 String 데이터 널 값 체크 실시]
			if (a == null || a.length()<=0 || a.equals("") == true 
					|| b == null || b.length()<=0 || b.equals("") == true) {
				throw new NullPointerException("input data is null"); // Exception 발생 체크 부분에 메시지 리턴
			}
			
			
			// [데이터 형 변환 수행 실시 :: String 값에 문자가 포함된 경우 Exception 발생]
			try {
				returnData = Integer.parseInt(a) + Integer.parseInt(b);
			}
			catch (NumberFormatException e) {
				throw new NullPointerException("number format error"); // Exception 발생 체크 부분에 메시지 리턴
			}
			
		}
		catch (Exception e) {
			throw new Exception(e.getMessage()); // Exception 발생 체크 부분에 메시지 리턴
		}
		
		
		
		// [리턴 결과 반환 실시]
		return returnData;
	}

}// 클래스 종료
 

[결과 출력]

 

 

반응형
Comments