JAVA异常基本知识及异常在Spring框架中的整体解决方案

Posted 代号菜鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA异常基本知识及异常在Spring框架中的整体解决方案相关的知识,希望对你有一定的参考价值。

异常的顶级父类是Throwable,下面有两个子类Exception和Error。

Error错误一般是虚拟机相关的问题,如系统崩溃,虚拟机错误等,应用程序无法处理,直接导致应用程序运行结束。

Exception是我们需要处理的异常。

Exception又分为Checked异常和Runtime异常。

所有RuntimeException类及其子类都是Runtime异常。其他的为Checked异常。

Checked异常必须显示处理,如果没有处理会发生编译错误。

RunTime和Checked的处理方式有两种:

1. Throw

2. Catch

两者可以同时使用,catch之后throw新的Exception


 

自定义异常类

public class AuctionException extends Exception{
    
    public AuctionException(){}
    public AuctionException(String msg){ 
           super(msg);
    }    
}

在Spring中对异常的处理,利用AOP集中处理

我们来看几位博友的文章,这几篇博文推荐阅读。

http://blog.csdn.net/he90227/article/details/46309297

http://www.cnblogs.com/chenpi/p/6117090.html

http://blog.csdn.net/ufo2910628/article/details/40399539

http://www.cnblogs.com/xd502djj/archive/2012/09/24/2700490.html

 总结来讲,主要有三种集中处理的方法

(1)使用Spring MVC提供的简单异常处理器SimpleMappingExceptionResolver; 
(2)实现Spring的异常处理接口HandlerExceptionResolver 自定义自己的异常处理器; 
(3)使用@ExceptionHandler注解实现异常处理; 

推荐采用最后一种。

http://www.cnblogs.com/chenpi/p/6117090.html中做了详细介绍。


 

总结起来,原则是用自定义的业务异常包装底层原生异常,然后进行集中处理。

 

以上是关于JAVA异常基本知识及异常在Spring框架中的整体解决方案的主要内容,如果未能解决你的问题,请参考以下文章

带你整理面试过程中关于 Java 中的 异常分类及处理的相关知识

检查型异常(Checked Exception)和非检查型异常(Unchecked Exception)的区别

Spring 框架 MVC - Hibernate 异常是 java.lang.NoSuchMethodError

Spring框架和AngularJs的圆形视图路径异常

SpringBug记录 -- java.lang.NullPointerException在Spring单元测试中遇到的空指针异常及依赖注入异常总结

最近ssh遇到异常及解决