예외처리 예제

smkim·2021년 10월 16일
0

JAVA

목록 보기
2/3

문제 : 정수를 입력받아 입력된 수가 0이나 양수이면 그 수를 그대로 출력하고,음수이면 음수예외인 MinusException을 발생시켜 '양수를 입력하시오!'라고 예외처리하고,
입력데이터가 없으면 입력데이터가 없는 예외인 EmptyData를 발생시켜 '데이터가 입력되지 않았어요!'라고 예외처리하는 예제를 작성해보자.
+) 입력된 값이 숫자가 아니면 예외를 발생시키고 예외처리하는 부분을 추가 처리 해보자

수정 전 코드

package p1;

class MinusException extends Exception {} 
class EmptyData extends Exception {} 

public class p1 {

	public static void main(String[] args) {
		
		int num=Integer.parseInt(args[0]); //args[0]번을 정수값으로 변환한다
		try { 
				if(num<0) {
					throw new MinusException();
				}
				else if(num==0) {
					throw new EmptyData();
				}
					
				System.out.println("읽어들인 숫자는:"+num);
			} 
	
		
		catch(MinusException m) {
				System.out.println("양수를 입력하시오!");
			} catch(EmptyData e) {
				System.out.println("데이터가 입력되지 않았어요!");
			} catch(NumberFormatException n) {
				System.out.println("숫자를 입력하세요");
			}
	}
}
	

수정 전 놓쳤던 점
1. 먼저 num을 선언해놓았었다. 근데 num값에 데이터가 없는 경우는 어떻게 처리해야 하는거지?하고 고민

수정한 코드

package p1;

class MinusException extends Exception {} 
class EmptyData extends Exception {} 

public class p1 {

	public static void main(String[] args) {
		
		try {
			int num;
		
			if(args.length==0) 
				
				throw new EmptyData();
			
		num = Integer.parseInt(args[0]);
		if(num<0) throw new MinusException();
		
		System.out.println("읽어들인 숫자는"+num);
	
		} catch(EmptyData e) {
			System.out.println("데이터를 입력하시오 !");
		} catch(MinusException m) {
			System.out.println("양수를 입력하시오!");
		} catch(NumberFormatException n) {
			System.out.println("숫자를 입력하시오");
		}
	}
	}
	
profile
컴퓨터공학과 학생 brandy 입니다. 개발+기획에 관심이 있지만, 개발 실력이 뛰어나진 않지만 성장하고자 하기 위해 벨로그를 작성합니다.

0개의 댓글