2010-11-26 52 views
1

我想爲我的bean使用攔截器,它將檢查給定連接標記的有效性。在EJB3中處理攔截器異常的正確方法是什麼?

如果連接無效,我想拋出一個特殊的異常,如果連接過期,我想發送另一個(TokenExpiredException,類似這樣的東西)。這些例外包含在提供給客戶端的界面中。

@AroundInvoke 
public Object checkParams(InvocationContext ctx) throws TokenExpiredException, Exception{ 
    //code to check token 
    //... 
    throw new TokenExpiredException(); 
} 

從我試過了,在攔截投擲這種特定的異常導致對客戶端的UndeclaredThrowableException。雖然這個例外包括了對事業的提及,但它並不是很理想,並且不能用常規的catch語句來處理。

然後用Interceptors聲明不同的異常類型的正確方法是什麼?

回答

1

我不認爲有一個正確的方法來做到這一點。方法應該只拋出它們聲明的異常,並且攔截器不應該添加新的異常。

我的個人案例已通過向我們的所有方法拋出的默認異常添加錯誤代碼得到解決。

相關問題