簡體   English   中英

在EJB3中處理攔截器中的異常的正確方法是什么?

[英]What is the proper way to deal with Exceptions in Interceptors in EJB3?

我想對我的bean使用攔截器,它將檢查給定連接令牌的有效性。

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

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

根據我的嘗試,在Interceptor中拋出這種特定的Exception會導致客戶端的UndeclaredThrowableException 盡管此異常包括對原因的引用,但它並不是真正理想的方法,並且不能通過常規catch子句處理。

那么使用攔截器聲明不同的異常類型的正確方法是什么?

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

通過將錯誤代碼添加到所有方法拋出的默認異常中,我的情況得到了解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM