Catch块没有被执行

时间:2014-06-26 11:07:01

标签: java try-catch nosuchelementexception

请找到以下代码:

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块执行任何解决方法吗?

1 个答案:

答案 0 :(得分:0)

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

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变量。只有在创建它的行为不打算发生时才会发生异常。