2017-03-04 36 views
0

我試着寫一個異常類,這裏是我的代碼:爲什麼JUnit調用「object」而不是「exception」?

public class DealWithMeException { 
    public DealWithMeException(String message){ 
     message="To make a class a checked exception it needs be a subclass of the appropriate Java class"; 
    } 
} 

當我運行我的JUnit測試,錯誤總是出現並說「呼叫Java.long.object代替Java.long .exceptions」

,這裏是我的JUnit測試代碼:

public class ExceptionsTest { 
    @Test 
    public final void testCheckedException() { 
    Class<DealWithMeException> cut = DealWithMeException.class; 
    assertEquals("To make a class a checked exception it needs be a subclass of the appropriate Java class", 
       Exception.class, cut.getSuperclass()); 
    } 
} 

發生了什麼?

回答

1

您已經錯誤地聲明瞭異常類。異常類必須是extend現有的異常類;例如ExceptionRuntimeException。 (技術要求是異常類必須是java.lang.Throwable的子類,但直接擴展該類是一個非常糟糕的主意。)

您的聲明沒有明確地擴展任何內容。這意味着它隱含地延伸Object。換句話說,它是而不是一個有效的異常類。事實上,你給這個班級的名字以...Exception結尾是非物質的

總之,JUnit測試說的是實話。

+0

非常感謝! – Yang

相關問題