在Spring Aop實例的文章中,我向大家介紹了Spring Aop的相關知識,今天我進一步細化下Aop中異常處理的相關知識。
public void doThrowing(JoinPoint jp, Throwable ex) {
System.out.println("method " + jp.getTarget().getClass().getName() + "." + jp.getSignature().getName() + " throw exception");
System.out.println(ex.getMessage());
}
我們在doThrowing方法中執行完相應的功能後,有時還需要將捕捉到的異常拋出給上層,如果用checked異常(即Exception)的話,Spring最終爲你拋出的並不是Exception或是你的Exception繼承類,而是另一個exception,裏面包含了你剛拋出的Exception。
原因是Spring Aop中異常處理是將checked異常轉化爲unchecked exception異常的,而此時你再拋出checked異常時,自如會有問題的
因此這是我們應該拋出RuntimeException。