所有硒异常的父异常类

时间:2020-01-03 13:17:53

标签: java selenium selenium-webdriver

在我现有的项目中,我的代码如下-

public static boolean isSessionAvailable(WebDriver driver){
    try{
        driver.getTitle();
        return true;
    }
    catch(UnreachableBrowserException s){
        return false;
    }
    catch(NoSuchWindowException s){
        return false;
    }
    catch(Throwable t){
        return false;
    }
}

我打算对其进行重构。当前不确定try块可以抛出什么异常。据我所知,WebDriverException是所有这些可能例外的父项。在这种情况下,请确认下面的重构编码是否正确。(注意。我也可以使用功能上由|分隔的多重异常捕获)

    public static boolean isSessionAvailable(WebDriver driver){
     try{
        driver.getTitle();
        return true;
     }
     catch(WebDriverException wde){
        return false;
     }
   }

我可以使用ExceptionThrowable,但这是通用的,而不是特定的。

1 个答案:

答案 0 :(得分:1)

很显然,您的两个代码段不同在做相同的事情。

第一个代码捕获了Throwable,因此没有任何应该能够从该方法中“退出”。

例如,您的重构代码允许RuntimeException冒泡至调用isSessionAvailable()的客户端代码。

您问这是否“正确”,但我们不能告诉您。

因为“正确”是基于您的要求。如果该方法必须永不抛出,则您的重构是错误的。但是,如果没有这样的要求:那么您的代码就可以了。

除此之外,感觉真正的答案是:您应该研究Java中的异常处理。因为应该理解您在课堂上写下的每一行。

最后:我建议您也考虑添加某种日志记录。您的代码基本上会忽略各种错误。这使得以后很难理解发生了什么。