2017-03-04 50 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

相关问题