티스토리 뷰
사용자 정의 예외처리
--------------------------------------------------------------------------------
컨트롤러 -> 서비스 (에러발생-컨트롤러로 에러전달) -> 컨트롤러 (에러 출력)
--------------------------------------------------------------------------------
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 |