欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

java全局机制,java实现全局异常机制

发布时间:2025/3/12 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java全局机制,java实现全局异常机制 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

先上自己的代码,后整理下原理知识。

下面是自己实现的全局异常机制

1.继承Exception,自定义异常类

package com.zichen.xhkq.exception;

/**

*

*

Title: CustomException

*

Description: 系统自定义的异常类型,实际开发中可能要定义多种异常类型

* @authorCNZZ

* @version 1.0

*/

public class CustomException extends Exception {

/**

*

*/

private static final long serialVersionUID = 5819174480253773214L;

//异常信息

private String message;

public CustomException(String message){

super(message);

this.message = message;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

this.message = message;

}

}

2.实现HandlerExceptionResolver,自定义异常处理器,可以判断处理自定义异常和系统异常,可以跳转异常页面

package com.zichen.xhkq.exception;

import java.io.IOException;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerExceptionResolver;

import org.springframework.web.servlet.ModelAndView;

/**

*

*

Title: CustomExceptionResolver

*

Description: 自定义异常处理器

* @authorCNZZ

* @version 1.0

*/

public class CustomExceptionResolver implements HandlerExceptionResolver {

//前端控制器DispatcherServlet在进行HandlerMapping、调用HandlerAdapter执行Handler过程中,如果遇到异常就会执行此方法

//handler最终要执行的Handler,它的真实身份是HandlerMethod

//Exception ex就是接收到异常信息

@Override

public ModelAndView resolveException(HttpServletRequest request,

HttpServletResponse response, Object handler, Exception ex) {

//输出异常

ex.printStackTrace();

//统一异常处理代码

//针对系统自定义的CustomException异常,就可以直接从异常类中获取异常信息,将异常处理在错误页面展示

//异常信息

String message = null;

CustomException customException = null;

//如果ex是系统 自定义的异常,直接取出异常信息

if(ex instanceof CustomException){

customException = (CustomException)ex;

}else{

//针对非CustomException异常,对这类重新构造成一个CustomException,异常信息为“未知错误”

customException = new CustomException("未知错误");

}

//错误 信息

message = customException.getMessage();

request.setAttribute("message", message);

try {

//转向到错误 页面

request.getRequestDispatcher("/error.jsp").forward(request, response);

} catch (ServletException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

return new ModelAndView();

}

}

3.配置javaBean

原理知识梳理(感谢各位的分享)

1 、Java异常分类

Java把异常当做对象来处理。Throwable是所有错误或异常的超类。Throwable类有两个直接子类:Error类和Exception类。

1、Error是指java运行时系统的内部错误和资源耗尽错误,是程序无法处理的异常,应用程序不会抛出该类对象。

2、Exception是程序本身可以处理的异常,应尽可能去处理这些异常。Exception分两类,一个是运行时异常RuntimeException,一个是检查异常CheckedException。

3、CheckedException一般是外部错误,这种异常都发生在编译阶段,Java编译器会强制程序去捕获此类异常。

4、RuntimeException是那些可能在Java 虚拟机正常运行期间抛出的异常的超类。这种错误是由程序员引起的错误,可以修正代码解决。

2、异常处理

在J2EE项目的开发中,不管是对底层的数据库操作过程,还是业务层的处理过程,还是控制层的处理过程,都不可避免会遇到各种可预知的、不可预知的异常需要处理。每个过程都单独处理异常,系统的代码耦合度高,工作量大且不好统一,维护的工作量也很大。 那么,能不能将所有类型的异常处理从各处理过程解耦出来,这样既保证了相关处理过程的功能较单一,也实现了异常信息的统一处理和维护?答案是肯定的。下面将介绍使用Spring MVC统一处理异常的解决和实现过程

使用Spring MVC提供的SimpleMappingExceptionResolver

实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器

使用@ExceptionHandler注解实现异常处理

相关博客资源链接:

https://www.jb51.net/article/110776.htm    详解Spring全局异常处理的三种方式

https://testerhome.com/topics/12058     Java 代码中的全局异常处理

https://blog..net/XlxfyzsFdblj/article/details/80835013  Java全局异常处理

https://blog..net/lveliu/article/details/51768635 JAVA 后台全局异常控制

总结

以上是生活随笔为你收集整理的java全局机制,java实现全局异常机制的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。