복불복망
443
2020-11-18 16:34:47 작성 2020-11-18 16:48:58 수정됨
3
118

MVC exception으로 에러 처리하는 방법 문의드립니다.



@RequestMapping(value = "/book/selectEcndmKindCdListAjax.do")
	public String selectEcndmKindCdListAjax(
			@RequestParam("ecndmCnsttFormCd") String ecndmCnsttFormCd,
			HttpServletRequest request,
			HttpServletResponse response,
			ModelMap model) throws IOException ,InvocationTargetException, SQLException{
		response.setContentType("application/x-json;  charset=UTF-8");

		try
		{
			List<CodeVO> ecndmKindCdCombo = cmmService.getCommonCodeList(ecndmCnsttFormCd);
			model.addAttribute("divlists", ecndmKindCdCombo);
		}
		
		catch (IOException exception)
		{
			request.setAttribute("errorMessage", "에러가 발생했습니다.");
		}
		catch (InvocationTargetException e)
		{
			request.setAttribute("errorMessage", "에러가 발생했습니다.");
		}
		catch (SQLException e)
		{
			request.setAttribute("errorMessage", "에러가 발생했습니다.");
		}
		return "jsonView";
	}


Unreachable catch block for IOException. This exception is never thrown from the try statement body

라고 에러가 나오고있어서..  아래 코드 부분이 쿼리돌아서 list로 가져오는건데,

catch (Exception exception) 이렇게 하면 되긴한데.. 시큐어코딩에서 어긋난다해서요.

 예를들어 List의 값이 null인 경우 예외처리 하는 방법 이런게 있을까요???

 일단은 ArrayIndexOutOfBoundsException는 사용했는데

List<CodeVO> ecndmKindCdCombo = cmmService.getCommonCodeList(ecndmCnsttFormCd);
0
  • 답변 3

  • ukyo
    50
    2020-11-18 17:12:18

    위 오류는 해당 IOException이 try문 안에서 발생할 일이 없다는 뜻입니다.

    그래서 아래에 삭제하라는거구요 

  • John Suhr
    3k
    2020-11-18 17:16:27
    cmmService.getCommonCodeList의 시그니처에 명시적으로 throws IOException이 있나요? 얘는 try 안에 던지는 요소가 없으면 catch에서 컴파일 에러입니다.
  • 복불복망
    443
    2020-11-18 17:22:20

    ukyo

    아.. 발생할 일이 없어서 에러가 나는거였군요 감사합니다

  • 로그인을 하시면 답변을 등록할 수 있습니다.