-3

请找到以下代码:

public static void selectDefinition(String defName)
        {
           driver.findElement(By.xpath("//table[@id='MainContent_gdvDefs_DXMainTable']//td[text()='"+defName+"']")).click();
        }

  try{
        selectDefinition(defdelname);
        System.out.println("Definition "+defdelname+" was not removed from the table");
    }
    catch (Exception ex)
    { 
        System.out.println("Definition "+defdelname+"was removed successfully from the table");

    }

在上面的代码中,如果“defdelname”被删除,catch 块没有执行,但是对于 selectDefinition,它不会抛出这样的元素异常。

我是初学者,请帮助我...解决这个问题我希望执行 catch 块任何解决方法?

4

1 回答 1

0

您必须添加throws Exception到您的方法中,这样异常会被抛出到 try/catch 块内的调用并正确处理:

public static void selectDefinition(String defName) throws Exception
        {
           driver.findElement(By.xpath("//table[@id='MainContent_gdvDefs_DXMainTable']//td[text()='"+defName+"']")).click();
        }

不是例外的工作方式。它们用于提醒程序执行期间发生错误,而不是用于管理程序工作流程。同样在您的代码中,您使用 catch 块来报告成功状态,这与异常捕获的用途相反。

如果您的方法既可以成功也可以不成功(根据您的示例,可能会导致从表中删除和无法删除),则应使用具有有意义值的 return 语句,例如布尔true \ false变量。只有当创建它的行为不应该发生时,才应该发生异常。

于 2014-06-26T11:57:46.230 回答