728x90
throw와 throws는 메서드나 코드 block에서 예외를 명시적으로 던지는 자바의 예외 처리 방법이다
throw(파랑색)
- 메서드 내에서 사용됨
- 한 번에 하나의 예외만 발생시킬 수 있다
- throw할 예외의 인스턴스 변수 사용
- checked exception propagation 할 수 없음
- unchecked exception만 propagation 할 수 있다
- 애초에 exception을 명시해주지 않으면 propagation이 일어나기 전에 complie 에러가 발생한다
throws(주황색)
- 메서드 signature에서 사용됨
- 쉼표로 여러 예외를 선언할 수 있다
- throws할 예외의 클래스 이름을 쓴다
- checked exception, unchecked exception propagate 할 수 있음
checked Exception?
- compile 시간에 확인할 수 있는 예외이다
- 이러한 exception일 경우에는 method signature에서 throws를 명시해야한다
- 대표적으로 IOException
@Test
@DisplayName("checked Exception propagation은 throws 키워드로만 가능하다")
void checkedException(){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
br.readLine();
}
위와 같이 컴파일 에러가 발생하게 된다
하지만 throws를 이용하여 method signature에 예외를 명시해주면 된다
@Test
@DisplayName("checked Exception propagation은 throws 키워드로만 가능하다 ")
void checkedException() throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
}
REFERENCES
728x90
'Java' 카테고리의 다른 글
JDK ? JRE ? (0) | 2022.09.15 |
---|---|
정적 메서드는 왜 오버라이딩 되지 않을까? (0) | 2022.08.29 |
java 연산자 (0) | 2022.05.06 |
Primitive Type, Reference Type, Literal (0) | 2022.05.03 |
Java volatile keyword (0) | 2022.04.18 |