21xrx.com
2025-06-19 21:33:54 Thursday
登录
文章检索 我的文章 写文章
Java全局异常处理器:处理Java程序中的异常
2023-06-15 10:14:15 深夜i     16     0
Java 全局异常处理器 代码案例

在Java编程中,异常处理是一个必不可少的部分。但是,如果不采用全局异常处理器,那么在程序运行时发生异常时,程序会崩溃或者停止运行,给用户带来不好的体验。因此,本文将介绍Java全局异常处理器的实现方法,以及代码案例。

在Java中,使用try-catch语句可以捕捉异常并处理。但是,如果程序中存在很多个try-catch语句,代码不仅冗长,而且不易维护。因此,使用全局异常处理器可以有效地简化代码,并提高程序的可读性和可维护性。

下面是一个示例代码:

public class GlobalExceptionHandler implements HandlerExceptionResolver {
  @Override
  public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception e) {
    // 自定义业务异常
    if (e instanceof BusinessException) {
      BusinessException businessException = (BusinessException) e;
      // 将错误信息返回给客户端
      ResponseVO responseVO = new ResponseVO(businessException.getCode(), businessException.getMsg());
      response.setContentType("application/json;charset=UTF-8");
      try {
        PrintWriter out = response.getWriter();
        out.write(JSONObject.toJSONString(responseVO));
        out.flush();
        out.close();
      } catch (IOException ex) {
        ex.printStackTrace();
      }
      return null;
    }
    // 系统异常
    else {
      // 将错误信息记录到日志文件中
      logger.error("系统异常:", e);
      //将错误信息返回给客户端
      ResponseVO responseVO = new ResponseVO(CodeMsg.SERVER_ERROR);
      response.setContentType("application/json;charset=UTF-8");
      try {
        PrintWriter out = response.getWriter();
        out.write(JSONObject.toJSONString(responseVO));
        out.flush();
        out.close();
      } catch (IOException ex) {
        ex.printStackTrace();
      }
      return null;
    }
  }
}

在上述代码中,我们定义了一个全局异常处理器类GlobalExceptionHandler,它实现了Spring框架的HandlerExceptionResolver接口。该类可以捕捉自定义业务异常和系统异常,并将异常信息返回给客户端。

三个

  
  

评论区