예외전파 예제 1

smkim·2021년 10월 16일
0

JAVA

목록 보기
3/3

firstException과 SecondException 2개의 Exception을 통해 예외를 전파

수정 전 코드

package p1;

class firstException extends Exception
class secondException extends Exception

class firstException { 
	throw new firstException(); // 예외 발생 
	// firstException 예외 전파 
	
} 

class secondException { 
	throw new secondException(); // 예외 발생 
	// firstException 예외 처리 
	// secondException 예외 전파
} 

public class p1 {

	public static void main(String[] args) {
		firstException f = new firstException();
		secondException s = new secondException();
		first();
		second();
		
		
	}
	}
	

[내가 놓쳤던 점]
1. 예외전파에 대한 개념을 완전히 놓치고 있었던 것 같다. 해당 예외에 대한 '메소드'호출을 통해 예외를 전파시키는 것인데 나는 예외 클래스를 만들고 있었다.
2. SecondException은 왜 나오지도 않나 했는데 FirstException에서 main 시작과 끝을 다 해버렸다. 그래서 SecondException은 예외발생~처리 기회를 갖지 못한다.
3. 결국 실행 결과는
main 시작
FirstException 예외 발생 전
FirstException 예외 처리
main 끝

수정 후 코드

package p1;
class FirstException extends Exception { } 
class SecondException extends Exception { } 



public class p1 {
	
	static void first() throws FirstException { 
		System.out.println("FirstException 예외 발생 전");
		throw new FirstException();
	}
	static void second() throws SecondException { 
		System.out.println("SecondException 예외 발생 전");
		throw new SecondException();
	}

	public static void main(String[] args) {
		System.out.println("main 시작");
		try { 
			first();
			second();
		}
		catch(FirstException f) {
			System.out.println("FirstException 예외 처리");
		} catch (SecondException s) {
			System.out.println("SecondException 예외 처리");
		} 
		System.out.println("main 끝");
	
	}
	}
	
profile
컴퓨터공학과 학생 brandy 입니다. 개발+기획에 관심이 있지만, 개발 실력이 뛰어나진 않지만 성장하고자 하기 위해 벨로그를 작성합니다.

0개의 댓글