Exception에 대해서 배웠다.
일단 그동안 잘못알고 있던게 있는데, 예외와 오류는 다른 개념이다.
그동안 같은 개념으로 알고 썼었는데, 잘못 썼었던 것 같다.
에러는 시스템레벨에서, java.lang.Error 클래스의 서브 클래스에서 발생하며,
익셉션은 개발자가 구현한 로직에서 발생하고, java.lang.Exception 클래스와 그 서브클래스에서 발생한다.
Error는 시스템 레벨의 심각한 수준의 에러이기 때문에 시스템에 변화를 주어 문제를 처리해야 하는 경우가 일반적이다.
Exception은 RuntimeException 과 같은 수많은 자식클래스를 가지고 있다.
RuntimeException은 CheckedException과 UncheckedException을 구분하는 기준이다.
이중 CheckedException은 반드시 처리해야하는 예외이며 UncheckedException는 처리를 강제하지 않는다.
CheckedException에는 대표적으로 IOException, SQLException 이 있으며 UncheckedException에는 NullpointException, IllegalArgumentException등이 있다.
즉, 그동안 프로젝트를 하면서 @RestControllorAdivice를 통해 전역 예외처리를 해줬던 Exception은 UncheckedException이었던 것이다.
이전에 자바를 배우면서 익셉션의 차이를 배우고 갔었는데, 다시 익셉션에 대해서 배우고 나서야 떠올리게 되었다.
그때에는 익셉션에 대한 개념이 잡히지 않아 이해하지도 못해서 기억을 못 했던것같다.
이번에 프로젝트를 진행하며 익셉션 처리를 하는법을 익히며 익셉션에대해 어느정도 알게 되었고, 다시 배우게 되니 이해가 되었다.
'개발일지(일간)' 카테고리의 다른 글
23년 1월 11일 sql (0) | 2023.01.11 |
---|---|
23년 1월 10일 sql (0) | 2023.01.10 |
23년 1월 6일 (0) | 2023.01.07 |
23년 1월 5일 팀 프로젝트 (0) | 2023.01.05 |
23년 1월 4일 팀 프로젝트 (0) | 2023.01.05 |