우당탕탕 코딩주머니
article thumbnail

 

이번 블로그 게시물에서는 개인공부를 통해 학습한 내용 중 final, 스프링에서의 예외처리, 그리고 StringUtils 라이브러리에 대해 다루어보겠습니다.

Final

Final은 더 이상 수정이 불가능한 변수, 클래스, 메소드를 선언할 때 사용됩니다.

  1. Final 필드
  2. Final을 가장 많이 사용하는 곳은 전역변수입니다. Final을 필드에서 사용하면 더 이상 수정이 불가능합니다.
  3. Final 클래스
  4. Class를 선언할 때 final 키워드를 class 앞에 붙여주면 됩니다. Final Class는 더 이상 상속 불가능합니다.
  5. Final 메소드
  6. Final 메소드는 오버라이딩을 금지할 때 사용됩니다. 오버라이딩은 상속관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 가진 메소드로 재정의하는 것을 의미합니다. 메소드의 동작은 재정의할 수 있지만, 메소드의 선언부는 기존 메소드와 같아야 하며 부모 클래스의 접근 제어자를 더 좁은 범위로 변경할 수 없으며 부모 클래스의 메소드보다 더 큰 범위의 예외를 선언할 수 없습니다.

스프링에서의 예외처리

SpringMVC에서는 HandlerExceptionResolver를 제공합니다. 이는 Exception이 발생했을 때 처리하는 기능입니다.

  1. HandlerExceptionResolver를 상속받은 클래스를 만들어서 Exception에 대한 처리를 합니다.
  2. 우리 같은 경우에는 ExceptionResolver, AuthException가 있습니다. CustomSimpleMappingExceptionResolver는 Exception시 기본 SimpleMappingExceptionResolver로는 logging이 되지 않기 때문에 상속받아 처리합니다.
  3. DispatcherServlet에서 해당 클래스를 빈으로 등록합니다.
    • DefaultErrorAttributes: 에러 속성을 저장하며 직접 예외처리를 하지 않습니다.
    • DefaultHandlerExceptionResolver: 스프링의 예외들을 처리합니다.
    • ResponseStatusExceptionResolver: @ResponseStatus 또는 ResponseStatusException에 의한 예외를 처리합니다.
    • ExceptionHandler, ExceptionResolver: Controller이나 ControllerAdvice에 있는 ExceptionHandler에 의한 예외를 처리합니다.
  4. 4가지의 구현체들이 빈으로 등록되어 있습니다.
  5. 연결된 에러뷰 페이지를 만듭니다.

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
profile

우당탕탕 코딩주머니

@코딩주머니

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!