1、编写自定义异常
ServiceException.java
package com.qst.exception;
//ServiceException 业务层异常
public class ServiceException extends RuntimeException{
public ServiceException() {
super();
}
public ServiceException(String message) {
super(message);
}
public ServiceException(String message, Throwable cause) {
super(message, cause);
}
public ServiceException(Throwable cause) {
super(cause);
}
protected ServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
super(message, cause, enableSuppression, writableStackTrace);
}
}
2、利用SSM自带注释 定义异常处理方法
DoControllerExceptionHandler.java
package com.qst.exception;
import com.qst.util.JsonResult;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
//全局异常处理类
@ControllerAdvice //用这个注解修饰的类就是异常处理类
public class DoControllerExceptionHandler {
@ExceptionHandler(Exception.class)//指定能处理的异常类型
@ResponseBody
public JsonResult controllerExceptionHandler(Exception e){
return new JsonResult(0,e.getMessage());
}
}
3、自定义一个存储状态的类 可存取对应异常信息
JsonResult.java
package com.qst.util;
public class JsonResult {
private int state;
private String message;
private Object data;
public JsonResult() {
}
public JsonResult(int state, String message, Object data) {
this.state = state;
this.message = message;
this.data = data;
}
public JsonResult(int state, String message) {
this.state = state;
this.message = message;
}
public int getState() {
return state;
}
public void setState(int state) {
this.state = state;
}
public String getMessage() {
return message;
}
public void setMessage(Throwable e) {
this.message = e.getMessage();
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
@Override
public String toString() {
return "JsonResult{" +
"state=" + state +
", message='" + message + '\'' +
", data=" + data +
'}';
}
}