异常的顶级父类是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中做了详细介绍。
总结起来,原则是用自定义的业务异常包装底层原生异常,然后进行集中处理。