본문 바로가기
IT/Java

try catch와 throws, throw의 차이

by 성준하이 2023. 4. 30.
반응형

이전 포스팅에서 try catch 에 대해 다룬 포스팅이 있다.

자세한 내용은 아래 참고 포스팅을 참고하면 된다.

 

이번 포스팅에서는 예외 처리를 위해서 좀더 try catch throws throw 에 대해 알아볼 것이다.

예외 처리에 대한 내용 역시 참고 포스팅을 참고 바란다.

 

예외 처리 기법에는 크게 3가지가 있다.

1. try catch 를 통해 예외 처리

2. throw로 그냥 예외 발생 시키기

3. throws 키워드를 통해 예외 처리 위임

 

 

먼저 간단하게 설명이 될 부분에서는 2번 throw 로 그냥 예외 발생 경우는

if (true){

    throw Exception();
}

이렇게 미리 만들어둔 예외나 기본적인 예외들을 발생 시키면 된다.

 

1, 3번에 대해서 차이는 

3번의 throws의 예외를 던지는것, 즉 위임하는것이다. 처리하는것과는 다른 의미이다.

1번의 try catch 는 예외를 받아서 처리하는 것이다. 이럴 경우가 처리이다.

 

throws는 메서드에서 처리해야할 하나 이상의 예외를 메서드를 호출한 곳으로 던져버린다.

public void method(){
    try {
        method2();
    } catch ( ClassNotFoundException e){
        //print ("여기");
    }
}

public void method2() throws ClassNotFoundException {
    throw new ClassNotFoundException();
}

만약 이런 코드가 있다고 할 경우 method2에서는 throw를 통해서 에러가 발생하였지만

throws로 잡혀있기에 상위 method2를 호출한 method 로 가서 catch 부분의 코드가 동작을 하게 된다.

 

여러 코드를 체계적으로 관리하고, checked 에러 , 예외를 좀더 명시적으로 관리하기 유리하다.


참고 포스팅

https://thenicesj.tistory.com/151

 

try catch/ 예외처리란?

한가지 예로 외출을 해야하는 경우인데 친구들끼리 오늘은 각자 준비해서 검정색 신발을 신고 만나자! 라고 얘기가 되었다. 근데 다들 모였는데 한 친구만 안나오길래 그 집에 가보니 친구가 신

thenicesj.tistory.com

https://thenicesj.tistory.com/485

 

Error, Checked Exception, Unchecked Exception 비교

포스팅 시작 앞에 에러와 예외에 대해서 먼저 비교를 해보고 시작하려고 한다. Error란 시스템 레벨에서 발생하는 심각한 수준의 오류를 뜻하며 개발자가 미리 예측하여 처리할 수 없기에 개발

thenicesj.tistory.com

 

반응형

'IT > Java' 카테고리의 다른 글

[eclipse] springboot maven module project 구성하기  (16) 2023.05.02
module project란?  (30) 2023.05.01
String 기본 method  (26) 2023.04.29
문자열 합치기 방법(concat, StringBuilder, StringBuffer, + ) (23.04.26)  (8) 2023.04.28
SQL Builder 클래스  (36) 2023.04.23

댓글