2017-03-04 16 views
0

私は例外クラスを記述しようとした、とここに私のコードです:なぜJUnitが「例外」ではなく「オブジェクト」を呼び出すのですか?

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でなければなりません。例えばExceptionまたはRuntimeExceptionです。技術的な要件は、例外クラスはjava.lang.Throwableのサブクラスでなければならないが、そのクラスを直接拡張することは本当に悪い考えです)。

宣言で明示的に何も拡張していません。つまり、それは暗黙のうちにObjectに拡張されます。つまり、ではなく、有効な例外クラスであるです。 ...Exceptionで終わるクラスには、という重要なものはありません。です。

要するに、JUnitテストは真実を伝えています。

+0

ありがとうございました! – Yang

関連する問題