我正在制作一个网络驱动程序,其中一部分是检查标题以确保它在正确的页面上。只是为了我现在的利益,我希望它在标题不匹配时显示一个对话框,但现在所做的只是在控制台中给我一条错误消息。我相信这是我的例外。有什么建议?

try{
    assertEquals("Current page title", "Account Inventory - Select Manager", pageTitle);
}
catch(Exception ex)
{

    JFrame frame = new JFrame("Message");
    JOptionPane.showMessageDialog(frame ,
            "The title does not match");
}

最佳答案

当不满足条件时,assertEquals引发AssertionError。因此,您可能应该明确捕获该错误,或​​者扩大捕获范围以包括Throwable而不是Exception

请参阅下面的类型层次结构图,以了解为什么catch (Exception e)无法捕获AssertionError

java.lang.Object
  |--- java.lang.Throwable
         |--- java.lang.Error
                | --- java.lang.AssertionError  // not a descendent of Exception
         |--- java.lang.Exception


但是...测试通常应该是自动化的,所以我无法想象您为什么要通过显示对话框来引入人为因素。

10-06 07:00
查看更多