[JAVA]/11.예외처리
[강의] throw 와 throws
76beny
2022. 5. 29. 20:58
throws
- 메서드가 발생하면 이러이러한 예외가 발생할 수 있다.
-예외발생시 상위 메소드에게 책임을 전가하는 키워드
- 단, main에서의 예외는 프로그램 종료를 의미
throw
-예외발생, 예외를 만들어서 던지는 문장(000라는 예외발생)
-예외발생시 상위 메소드에게 책임을 전가하는 키워드
-단, main에서의 예외는 프로그램 종료를 의미
import java.io.File;
import java.io.IOException;
public class UseThrows {
public static void method() throws IOException {
File file = new File("./Test");
file.createNewFile(); // IOException 발생, 대표적으로 명시적인 예외
System.out.println("TEST1");
if (true)
throw new IOException("TEST");
System.out.println("TEST2"); // 예외 발생시 아래에 문장은 실행되지 않음.
}
public static void main(String[] args) {
// method();
}
}
IOException는 exception의 자손이라 try필수
메서드가 발생하면 IOException이라는 예외가 발생 할 수 있다 ( throws의 역할)
[출력]
예외발생하지않아 미출력
import java.io.File;
import java.io.IOException;
public class UseThrows2 {
public static void method() throws IOException {
File file = new File("./Test");
file.createNewFile(); // IOException 발생, 대표적으로 명시적인 예외
System.out.println("TEST1");
if(true)
throw new IOException("TEST");
System.out.println("TEST2"); // 예외 발생시 아래에 문장은 실행되지 않음.
}
public static void main(String[] args) {
try { //정가된예외를 처리하는 try문
method();
} catch(IOException e) { //예외를 받아주는 catch문
e.printStackTrace();
System.out.println("예외가 발생하였습니다.");
}//예외가 발생하면 처리해야할 로직
//ex)로그를 찍는다던가...email을 보낸다던가.
}
}
[출력]
TEST1
java.io.IOException: TEST
at UseThrows2.method(UseThrows2.java:16)
at UseThrows2.main(UseThrows2.java:23)
예외가 발생하였습니다.