- sql exception 또는 exception을 이용하지 말고, 사용자 정의 exception을 만들어서 사용하는 것을 권장
ex)
- select 하다가 오류 -> throw findException
- insert -> addException
- delete -> removeException
- dao는 sql과 작업하므로 SQLException으로 받고 (
catch (SqlException e)
, 메소드를 호출 할 때는 사용자정의 예외처리로 만들어서 service에(메소드를 호출 한 곳에) 던져준다. ( {} 내부에 throw new FindException
으로 날려줌)
-> throws를 쓰지않고 e.printStackTrace
만 사용하면 콘솔로만 보이는 것.
- dao혼자 try catch 하는 것은 나만 아는 거고, throws로 던져주는 것은 다른 동료에게 그 문제를 알려주는 것! 해줘야 함
throw
는 Exception을 발생시킬 때 사용하는 키워드
throws
는 메소드를 정의할 때 사용하며, 이 메소드에서 발생할 수 있는 Exception을 명시적으로 정의할 때 사용
- throw로 예외를 강제 발생시키고 throws로 떠넘기기