이번 블로그 게시물에서는 개인공부를 통해 학습한 내용 중 final, 스프링에서의 예외처리, 그리고 StringUtils 라이브러리에 대해 다루어보겠습니다.
Final
Final은 더 이상 수정이 불가능한 변수, 클래스, 메소드를 선언할 때 사용됩니다.
- Final 필드
- Final을 가장 많이 사용하는 곳은 전역변수입니다. Final을 필드에서 사용하면 더 이상 수정이 불가능합니다.
- Final 클래스
- Class를 선언할 때 final 키워드를 class 앞에 붙여주면 됩니다. Final Class는 더 이상 상속 불가능합니다.
- Final 메소드
- Final 메소드는 오버라이딩을 금지할 때 사용됩니다. 오버라이딩은 상속관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 가진 메소드로 재정의하는 것을 의미합니다. 메소드의 동작은 재정의할 수 있지만, 메소드의 선언부는 기존 메소드와 같아야 하며 부모 클래스의 접근 제어자를 더 좁은 범위로 변경할 수 없으며 부모 클래스의 메소드보다 더 큰 범위의 예외를 선언할 수 없습니다.
스프링에서의 예외처리

SpringMVC에서는 HandlerExceptionResolver를 제공합니다. 이는 Exception이 발생했을 때 처리하는 기능입니다.
- HandlerExceptionResolver를 상속받은 클래스를 만들어서 Exception에 대한 처리를 합니다.
- 우리 같은 경우에는 ExceptionResolver, AuthException가 있습니다. CustomSimpleMappingExceptionResolver는 Exception시 기본 SimpleMappingExceptionResolver로는 logging이 되지 않기 때문에 상속받아 처리합니다.
- DispatcherServlet에서 해당 클래스를 빈으로 등록합니다.
- DefaultErrorAttributes: 에러 속성을 저장하며 직접 예외처리를 하지 않습니다.
- DefaultHandlerExceptionResolver: 스프링의 예외들을 처리합니다.
- ResponseStatusExceptionResolver: @ResponseStatus 또는 ResponseStatusException에 의한 예외를 처리합니다.
- ExceptionHandler, ExceptionResolver: Controller이나 ControllerAdvice에 있는 ExceptionHandler에 의한 예외를 처리합니다.
- 4가지의 구현체들이 빈으로 등록되어 있습니다.
- 연결된 에러뷰 페이지를 만듭니다.
StringUtils 라이브러리
StringUtils는 문자열에 작업하는 관련 기능들을 모아놓은 Library입니다. 여러 가지가 있지만 equals는 문자열을 비교하는 기능을 합니다.
- request 객체에는 기본적으로 사용자 정보가 담겨 있습니다.
- exception.getMessage(): 에러의 원인을 간단하게 출력합니다.
- getHeader: 지정한 요청헤더의 값을 문자열로 반환하며, 포함되지 않으면 null을 반환합니다.
- exception.toString(): 에러의 exception 내용과 원인을 출력합니다.
- indexOf: 특정 문자나 문자열이 앞에서부터 처음 발견되는 인덱스를 반환하며, 찾지 못하면 -1을 반환합니다.
이상으로 개인공부 final, 스프링에서의 예외처리, StringUtils 라이브러리에 대해 알아보았습니다.
'JAVA > 개인공부' 카테고리의 다른 글
| TDD 개발 시작하기 (0) | 2023.07.11 |
|---|---|
| Multi Thread(대용량 Insert) (0) | 2023.06.24 |
| FCM이란 무엇인가? (0) | 2023.06.21 |
| Spring 의 DispatcherServlet (0) | 2023.06.14 |
| Throws ,throw 의 차이점 (0) | 2023.06.03 |
