Exception, 예외처리에 대해서..
by BFine반응형
가. Excpetion에 대한 나의 생각
-
테스트 코드를 작성하던중 문득 Exception에 대한 아쉬웠던 생각을 정리해봐야겠다.
-
여러 책이나 글을 찾아보면 이론은 빠삭해진다... 예를들어
- Exception 이란 무엇인가!
- 에러, 체크예외, 언체크예외가 차이가 무엇인가!
- 예외처리 방법에 대한것(회피, 구체적으로 감싸기 등)
-
뭔지는 알겠는데 뭔가 조금 아쉽다! 예전에 처음 공부할때 들었던 생각은
- 예외처리 하지않아도 서버는 다운되지 않는데?!
- 예외처리를 전역으로 한번에 하면 되지않나?!
나. Exception 테스트
-
이런건 역시 직접 테스트를 해봐야한다.!!
-
View 페이지 요청시 Exception을 발생시켜보았다.
-
에러페이지가 나타나고 stackTrace가 보여진다.
-
Spring Boot에서 Excepction 발생한경우 자체적인 error 페이지로 리다이렉트
-
이게 Spring의 default 예외처리 방법
-
이거는 컨트롤러 클래스에서 throws Exception 해도 같다.
→ 즉 사용자 예외처리를 안한거와 같다.!
= Spring의 디폴트 예외처리를 사용하겠다.
-
-
-
이 Spring default 페이지의 문제점은 무엇일까
- StackTrace가 보여진다.
- 예전에 인턴할때 StackTrace로 해킹이 할수 있다는 소리를 들었다.
- 해커가 아니라 어떻게 하는지는 모르겠다..
- 좀더 딥한 곳에서 Exception 발생할 경우
- 불러온 메서드 전부를 보여줄것이다...
- 내부 구조가 보여지는 사태가 발생한다..
- 사용자가 이페이지를 볼경우...
- 고객센터가 난리난다.
- StackTrace가 보여진다.
-
어떤오류가 발생할지 모르기 때문에 에러페이지는 꼭 만들자!
-
이번엔 유저등록 API에 오류를 발생시켜본다.
-
같은 이름으로 두번 요청 할경우(name에는 유니크 제약조건)
-
DataIntegrityViolationException
이 발생한다. -
이걸 전역으로 처리하면 어떻게 될까?
- 사용자는 내 이름이 중복되서 오류난건지 알수가 없다. → 계속시도
- 고객센터가 난리나거나, 이런거 왜써!→ 고객이 줄어듬..
-
Front에서 고객이 확인 해야하는 부분에 대한 Exception 처리는 반드시 해야한다.
-
-
이외에도 Exception 발생할 경우 처리
- 복잡한 데이터 처리 로직에 대해 DB를 rollback → 요게 가장 크다!
- 개발자에게 알람, 로그테이블에 내역 추가 등
-
반응형
'공부 > Java' 카테고리의 다른 글
<Java> Future (0) | 2022.05.06 |
---|---|
<Java> Thread 와 비동기 (0) | 2022.01.20 |
ForkJoinPool의 Thread Size 고정이 안되는 경우 (3) | 2021.02.26 |
<모던자바인액션> Stream API, JMH, Parallel Stream (0) | 2021.02.21 |
<네티인액션> Java로 콜백 만들기 (0) | 2021.02.14 |
블로그의 정보
57개월 BackEnd
BFine