메서드에 예외 선언하기
- 예외를 처리하는 방법
- try - catch문 (직접 처리)
- 예외 선언하기 (예외 떠넘기기(알리기))
- 메서드가 호출시 발생가능한 예외를 호출하는 쪽에 알리는 것
(참고 : 예외를 발생시키는 throw와 예외를 메서드에 선언할 때 쓰이는 throws를 잘 구별)
void method() throws Exception1, Exception2, ... ExceptionN {
}
void method() throws Exception {
}
class Ex {
public static void main(String args[]) {
method1();
}
static void method1() throws Exception {
method1();
}
static void method2() throws Exception {
throw new Exception();
}
}
- method2에서 예외처리 X -> method1로 떠넘김 -> method1에서 예외처리 X -> main으로 떠넘김 -> main에서 예외처리 X -> JVM에서 처리
예제
- main에서 실행, static에서 객체 생성
public class Ex1 {
public static void main(String[] args) {
try {
File f = createFile("");
System.out.println(f.getName()+ "파일이 성공적으로 생성되었습니다.");
} catch(Exception e) {
System.out.println(e.getMessage() + " 다시 입력해주시기 바랍니다.");
}
}
static File createFile(String fileName) throws Exception {
if (fileName == null || fileName.equals(""))
throw new Exception("파일이름이 유효하지 않습니다.");
File f = new File(fileName);
f.createNewFile();
return f;
}
}
finally 블럭
- 예외 발생여부와 관계없이 반드시 수행되어야 하는 코드를 넣는다.
try {
} catch (Exception e) {
} finally {
}