티스토리 뷰

note

사용자 정의 예외처리

vmgdrake 2023. 2. 4. 16:31

사용자 정의 예외처리

--------------------------------------------------------------------------------
컨트롤러 -> 서비스 (에러발생-컨트롤러로 에러전달) -> 컨트롤러 (에러 출력)
--------------------------------------------------------------------------------

1. ( com.myexception ) 패키지에 사용자정의 예외처리 클래스( MyException )를 만든다. / extends Exception

package com.myexception;

//예외처리 클래스 extends Exception

public class MyException extends Exception {

public MyException(String messege) {

super(messege);

}

}

------------------------------------------------------------------------------------------------
2-1 (인터페이스에 추상메소드에 throws MyException 추가)
]
package com.service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.myexception.MyException;
//인터페이스 (서비스들(Command) 다 상속받아 사용하기위해 생성
public interface Command {
public abstract void execute(HttpServletRequest request,HttpServletResponse response) throws MyException;
}
------------------------------------------------------------------------------------------------
2-2 서비스 클래스에서 인터페이스 상속받음
package com.service;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.dao.BoardDAO;
import com.entity.DTO;
import com.myexception.MyException;
//클래스 (서비스)
public class purchaserCommand implements Command{
public int n;
@Override
public void execute(HttpServletRequest request, HttpServletResponse response) throws MyException {
System.out.println(" purchaserCommand execute");
//사용자로부터 입력받은값들 변수로 받기
String pur_userid =request.getParameter("pur_userid");
if(pur_userid.length()>5){
throw new MyException("아이디는 5자 이내여아함"); //예외 발생시킴
}
}
}
------------------------------------------------------------------------------------------------
2-3 (컨트롤러) doPost 에서 서비스 호출 -> 서비스에서 컨트롤러로 에러발생알려줌 -> 컨트롤러에서 에러 출력
package com.controller;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.myexception.MyException;
import com.service.purchaserCommand;
//서블릿
@WebServlet("/Controller/*")
public class Controller extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
if("/purchaserForm".equals(action)) {
purchaserCommand command = new purchaserCommand();
try {
command.execute(request, response);
} catch (MyException e) {
e.printStackTrace();// 로그창에 에러발생
e.getMessage(); // 로그창에 에러발생
}
}

'note' 카테고리의 다른 글

북극 스웨덴에서 거대한 희토류 금속 발견  (0) 2023.02.04
오라클 테이블 복구  (0) 2023.02.04
감시제어반  (0) 2023.02.03
전동기  (0) 2023.02.03
배전  (0) 2023.02.03
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함