Notice
Recent Posts
Recent Comments
Link
«   2024/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
Tags
more
Archives
Today
Total
관리 메뉴

공hannah부

예외처리(Exception Handling) 본문

공부/JAVA

예외처리(Exception Handling)

Hannah0226 2023. 5. 21. 03:57

예외 처리 코드(try-catch-finally)

- try 블록

예상되는 문제를  try 블록으로 설정한다.

try{
	예외발생 가능 코드
}

- catch 블록

 catch 블록은 여러개 존재할 수 있으며, 최상위 예외는 가장 마지막에 위치시킨다.

catch(Exception e){
	예외를 처리하는 코드
}

-finally 블록

finally 블록은 예외 발생과 전달 여부에 관계없이 항상 실행되는 코드블록이다. 생략 가능하다.

finally{
	항상 실행
}

 


예외 전달하기(throws)

- catch와 달리 전달만 해서 예외 떠넘기기 라고도 한다.

- 메소드 선언부 끝에 작성한다.

리턴타입 메소드명(매개변수,...) throws 예외클래스1, 예외클래스2,...{
}

사용자 정의 예외

- 자바 표준 API에서 제공하지 않는 예외는 개발자가 만들어서 사용해야한다.

- Exception 클래스나 RuntimeException 클래스를 상속하여 만든다.

public class XXXException extends[Exception|RuntimeException]{
	public XXXException(){}
    public XXXException(String message{
    	super(message);
    }
}

예외 정보 얻기

- getMessage()

예외를 발생시킬 때 생성자 매개값으로 메세지 리턴한다.

전달한 메세지는 catch()절에서 활용한다.

- printStackTrace()

예외 발생 코드를 추적한 내용을 모두 콘솔에 출력한다.


정리

try{
	//모든 조건을 if-then-else로 체크하기 어렵거나
    //문제가 발생할 수 있는 의심스로운 코드는 try로
}catch(가장 구체적인 class e){
	//처리코드
}catch(점진적으로 추상적인 class e){
	//처리코드
}catch(마지막은 가장 추상적인 클래스 Exception e){
	//처리코드
}finally{
	//예외의 발생 여부에 관계없이 공통적으로 처리해야하는 마무리 코드는 여기에
}