예외(Exception)

시모키타자와·2022년 10월 17일
0

SpringDB

목록 보기
8/8

예외란 무엇인가?

예외란,
In Java, an exception is an event that disrupts the normal flow of the program. It is an object which is thrown at runtime.

개발자가 만들어 놓은 로직의 흐름이 정상적이지 못할 때 일어나는 것이다.

자바의 예외에는 Error와 Exception이 있는데, Error는 정말 단어 그대로의 에러 이므로 개발자가 잡을 필요도 해서도 안된다.
개발자가 생각되야 하는 예외는 Excpotion과 RuntimeException이다.
위의 그림에서 파란색의 부분이 checked exception, 주황색 부분은 unChecked exception이다.

예외는 반드시 어디서든 처리해야 된다. 만약 repository에서 예외가 발생하고 repository에서 처리하지 못했다면, service에 옮겨가고 service에서도 처리하지 못했다면 controller에서 처리해야 된다.

예외를 잡을 때는 try/catch 잡거나 또는 throws로 던져야 된다. 만약 예외를 처리하지 못하고 계속 throws하게 된다면 서비스를 사용하고 있는 유저에게 예외를 보여주게 된다.

Checked Exception

체크 예외는 try/catch로 잡을 수 없을 때 throws로 밖으로 던져야 된다.
체크 예외는 컴파일을 통해 오류를 잡아줘 개발자가 예외를 누락하지 않게 도와주지만, throws할 때 JDBC exception에 의존적이다.

UnChecked Exception

컴파일러가 예외를 체크하지 않으며, 예외를 잡아서 처리하지 않아도 throws 를 생략할 수 있다. 그렇기 때문에 JDBC exception 의존하지 않는다. 하지만, 컴파일에서 체크를 하지 않기 때문에, 개발자가 예외를 누락할 가능성이 있다.

기본적으로 UnChecked Exception를 사용하되, 예외를 꼭 처리해야되는 중요한 비지니스 로직에서는 체크 예외를 사용한다.

profile
Back-end Engineer

0개의 댓글