檢查 EJB 應用程式異常狀況繼承中的行為變更

從 Java EE 6.0 規格開始,依預設子類別的異常狀況類別會繼承應用程式異常狀況。 這個行為可在 @ApplicationException 註釋中或是在 ejb-jar.xml 檔的 <application-exception> 元素中配置。

此規則會標示 javax.ejb.ApplicationException 註釋(如果未定義 inherited 屬性),且會標示未定義 inherited 元素之 ejb-jar.xml 檔中的 <application-exception> 元素。


例如,此規則會標示下列 @ApplicationException 註釋:
@ApplicationException(rollback = true)
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

在下例中,此規則也會標示 ejb-jar.xml 中的 <application-exception> 元素:
<application-exception>
    <exception-class>ExceptionA</exception-class>
    <rollback>true</rollback>
</application-exception>


ejb-jar.xml 中的異常狀況可以在應用程式中實作,如下例所示:
public class ExceptionA extends Exception {
}

public class ExceptionB extends ExceptionA {
}

在 Java EE 5.0 中,ExceptionB 不被視為 ApplicationException,但是在 Java EE 6.0 中,ExceptionB 是 ApplicationException,因為它是延伸自 ExceptionA 類別。 Java EE 6.0 新增了 inherited 屬性,其預設值是 true,因此所有繼承的類別也都是 ApplicationException。

您可以透過下列方式保留 Java EE 5.0 行為:

如需相關資訊,請參閱下列資源: