본문 바로가기
programming/JAVA

[JAVA] 예외처리 e.toString(), e.getMessage(), e.printStackTrace()

by kvve 2022. 2. 18.

쇼핑몰 프로젝트 진행 중 상품 등록에 실패하였다.

 

데이터베이스 처리 과정에 문제가 있음을 알수 있었는데 정확히 어디가 문제인지 알수 없었는데

    @PostMapping(value = "/shop/productregister.do")
    public String registerProduct(final ProductDTO params, Model model, HttpServletRequest request,
            HttpSession session) {
        try {
            // 세션값 userID params 입력
            String userID = null;
            if (session.getAttribute("userID") != null) {
                userID = (String) session.getAttribute("userID");
            }
            params.setUserID(userID);

            boolean isRegistered = productService.registerProduct(params);
            if (isRegistered == false) {
                return showMessageWithRedirect("제품 등록에 실패하였습니다.", "/shop/productmanagement.do", Method.GET, null,
                        model);
            }
        } catch (DataAccessException e) {
            return showMessageWithRedirect("데이터베이스 처리 과정에 문제가 발생하였습니다.", "/shop/productmanagement.do", Method.GET, null, model);
			e.printStackTrace();

        } catch (Exception e) {
            return showMessageWithRedirect("시스템에 문제가 발생하였습니다.", "/shop/productmanagement.do", Method.GET, null, model);
        }

        return showMessageWithRedirect("제품 등록이 완료되었습니다.", "/shop/productmanagement.do", Method.GET, null, model);
    }

 

예외처리문 e.printStacktTrace()를 삽입하여 단계별로 에러를 출력하여 에러 위치를 알 수 있었다.

예외처리에서 에러 출력방법에는 3가지가 있다고 한다.

e.getMessage() : 에러의 원인을 간단하게 출력

e.toString() : 에러의 Exception 내용과 원인을 출력

e.printStackTrace() : 에러의 발생근원지를 찾아서 단계별로 에러를 출력

'programming > JAVA' 카테고리의 다른 글

[JAVA] Junit CRUD 테스트  (0) 2022.02.04
[JAVA] 소켓통신을 이용한 데이터 송수신  (0) 2021.09.10

댓글