我對定義中的模糊點以及Application Exceptions
和System Exceptions
在EJB
的可能影響感到困惑。特別是我不能找出如果異常定義爲:系統異常或應用異常
public class SomeException extends Exception{
...
}
將是一個Application
或System Exception
。根據規範,Application Exception
應始終使用註釋@ApplicationException
進行定義。因此,我推斷上面的類不是Application Exception
,即使它是一個選中的異常。我的問題出來屬於正確的Java語法,並隨後向EJB Container
的情況下,這種行爲上的Exception
要的Session Bean
(不Singleton
雖然)業務方法中拋出:
@Stateless
@LocalBean
public class StatelessBean{
public void doStuff(){
throw new SomeException();
}
}
1)該不該在throw子句中聲明SomeException
?
2)在方法doStuff()
被調用後,Container
是否丟棄實例?
3)如果是最後一個Sytem Exception
是我的假設是正確的,那麼System Exception
可能是一個檢查,而不是RuntimeException
?
更新:
在我看來,它根據規範,一個checked異常應該永遠是一個Application Exception
並不一定清楚。如果要定義一個選中的RuntimeException
,該怎麼辦?它是否應該包含在一個方法的throw
中?是System
還是Application Exception
?
public class SomeException extends RuntimeException{
...
}
我仍然堅持認爲即使在規範中也不完全清楚。我已經閱讀,但在另一個資源ID檢查異常沒有註釋@AppicationException,它將是一個系統異常?它是假的嗎? – arjacsoh
是的,這是錯誤的,因爲它與規範相矛盾。 –
請參閱我的更新。 – arjacsoh