异常,Junit问题.什么也没扔



为什么我得到一个预期的进度?要抛出NotATriangleException,但什么都没抛出?下面是代码

public static double calcArea(double a, double b, double c) {
checkTriangle(a, b, c);
double s = (a + b + c)/2;
return Math.sqrt(s * (s - a) * (s - b) * (s - c));
}
private static void checkTriangle(double a, double b, double c)  {

try{
checkRatio(a, b, c);
}
catch(Exception e) {
e.toString();
}

}
private static void checkRatio(double a, double b, double c) throws NotATriangleException {
if (a + b <= c) {
throw new NotATriangleException("Wont form a Triangle");
}

这是Junit测试

@Test
Exception b = assertThrows(NotATriangleException.class, () -> {Triangle.calcArea(5,5 ,12 );});
assertEquals("Wont form a Triangle",b.toString());

checkTriangle-方法中,您捕获异常。

try{
checkRatio(a, b, c);
}
catch(Exception e) {
e.toString();
}

这意味着当异常发生时,执行将继续。

assertThrows()只检查未捕获的异常。

为了解决这个问题,您不需要捕获并忽略异常。

使用ununchecked exception或在其他方法中添加throws NotATriangleException

相关内容

  • 没有找到相关文章

最新更新