2014-06-26 48 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變量。只有在創建它的行爲不應該發生的情況下才會發生異常。