2014-06-26 50 views
-3

PLS找到代码如下:Catch块是没有得到执行

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

+2

请正确格式化您的代码。 – TheLostMind

+3

您的代码是不可编译的。请纠正你的例子。 'try/catch'目前在任何方法之外。 –

+0

在这个例子中,如果抛出异常,它只打印“成功”。你不应该认为在你打电话时删除成功了吗? –

回答

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变量。只有在创建它的行为不应该发生的情况下才会发生异常。