java自定义异常处理类

博客围绕JAVA异常处理展开,虽未给出具体内容,但可知核心聚焦于此。JAVA异常处理在后端开发中至关重要,能保障程序稳定运行,避免因异常情况导致程序崩溃。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/***
 * 为什么使用自定义异常?
 * 更加精确定位具体异常信息
 *
 * 继承RuntimeException,实现RuntimeException的所有构造方法,就是一种自定义异常类
 *
 */

public class ServiceException  extends RuntimeException {

	private static final long serialVersionUID = -1169100027771948958L;

	public ServiceException() {
		super();
		// TODO Auto-generated constructor stub
	}

	public ServiceException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
		super(message, cause, enableSuppression, writableStackTrace);
		// TODO Auto-generated constructor stub
	}

	public ServiceException(String message, Throwable cause) {
		super(message, cause);
		// TODO Auto-generated constructor stub
	}

	public ServiceException(String message) {
		super(message);
		// TODO Auto-generated constructor stub
	}

	public ServiceException(Throwable cause) {
		super(cause);
		// TODO Auto-generated constructor stub
	}

	
}
/**Spring MVC 基于注解方式实现统一异常处理方式
 * 规则
 * 1)controller内部-->父类-->@ControllerAdvice
 * */
@ControllerAdvice
public class ControllerExceptionHandler {
	  @ExceptionHandler(ServiceException.class)
	  @ResponseBody
	  public JsonResult handleServiceException(
			  RuntimeException e){
		  System.out.println("handleServiceException");
		  e.printStackTrace();
		  //封装错误信息
		  return new JsonResult(e);
	  }
	  @ExceptionHandler(AuthorizationException.class)
	  @ResponseBody
	  public JsonResult handleAuthorizationeException(
			  AuthorizationException e){
		  System.out.println("handleAuthorizationeException");
		  e.printStackTrace();
		  //封装错误信息
		  return new JsonResult(new ServiceException("没有此权限"));
	  }
}
/**通过此对象对控制层数据进行封装 
 * 1)正常数据
 * 2)异常数据
 * */
public class JsonResult {
	private static final int SUCCESS=1;
	private static final int ERROR=0;
    /**状态码*/
	private int state=SUCCESS;
	/**状态信息*/
	private String message;
	/**具体数据*/
	private Object data;
	
	public JsonResult() {
		message="Action OK";
	}
	public JsonResult(Object data){
		this.data=data;
	}
	public JsonResult(String message){
		this.message=message;
	}
	public JsonResult(Throwable exp){
		this.state=ERROR;
		this.message=exp.getMessage();
	}
	public int getState() {
		return state;
	}
	public void setState(int state) {
		this.state = state;
	}
	public String getMessage() {
		return message;
	}
	public void setMessage(String message) {
		this.message = message;
	}
	public Object getData() {
		return data;
	}
	public void setData(Object data) {
		this.data = data;
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值