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)[email protected];
推薦采用最後一種。
http://www.cnblogs.com/chenpi/p/6117090.html中做了詳細介紹。
總結起來,原則是用自定義的業務異常包裝底層原生異常,然後進行集中處理。
JAVA異常基本知識及異常在Spring框架中的整體解決方案