2017-08-29 188 views
-4

我想添加嘗試和捕獲異常到我的代碼,但不知道在哪裏把它放到我的代碼中。有人可以請幫忙。 Java新手。我知道,有一個嘗試,你需要抓住。如果任何人都可以得到任何好的幫助。如果你需要任何進一步的細節,讓我知道:)嘗試和捕獲異常處理

我也用頁面對象建模來寫我的代碼也。

package com.gms; 

import java.io.File; 
import java.io.IOException; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.concurrent.TimeUnit; 

import org.openqa.selenium.remote.DesiredCapabilities; 
import org.testng.annotations.AfterTest; 
import org.testng.annotations.BeforeTest; 
import org.testng.annotations.Test; 

import NGP_IOS_Test.AttractionTab; 
import NGP_IOS_Test.MyAlbum; 
import io.appium.java_client.AppiumDriver; 
import io.appium.java_client.ios.IOSDriver; 
import io.appium.java_client.remote.MobileCapabilityType; 
import io.appium.java_client.service.local.AppiumDriverLocalService; 
import io.appium.java_client.service.local.AppiumServiceBuilder; 

public class pages { 

AppiumDriver driver; 

public AppiumDriverLocalService service; 

@BeforeTest 
public void AttractionsPage() throws IOException, InterruptedException, 
MalformedURLException 

{ 
service = AppiumDriverLocalService 
      .buildService(new AppiumServiceBuilder() 
      .usingDriverExecutable(new 
File("/usr/local/Cellar/node/8.2.1/bin/node")) 
      .withAppiumJS(new 





File("/Applications/Appium.app/Contents/Resources/app/node_modules 
/appium/build/lib/main.js"))); 

    service.start(); 

    Thread.sleep(5000); 

    DesiredCapabilities cap = new DesiredCapabilities(); 
cap.setCapability(MobileCapabilityType.BROWSER_NAME, "safari"); 
cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "10.3"); 
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 7 Plus"); 
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 7 Plus"); 
driver = new IOSDriver(new URL("http://127.0.0.1:4723/wd/hub"), cap); 
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS); 
} 

    @Test 
    public void RunTest() throws InterruptedException { 


driver.get("http://gms-picsolve-qa.ngpdev.com"); 

AttractionTab attraction=new AttractionTab(driver); 


//click a photo 
attraction.clickphoto(); 
Thread.sleep(3000); 

//click thats me on preview 
attraction.clickpreview(); 
Thread.sleep(3000); 

//click no on facial detection 
attraction.clickFDS(); 
Thread.sleep(3000); 


MyAlbum album=new MyAlbum(driver); 

album.clickalbum(); 
Thread.sleep(3000); 
album.photoassiston(); 
Thread.sleep(3000); 
album.exitselfie(); 

} 

    @AfterTest 
    public void afterTest() { 

driver.quit(); 


service.stop(); 

} 
} 
+5

「Java新手」。 - 在這種情況下,您可能需要首先了解基礎(而異常處理就是其中之一),然後再深入到更復雜的主題中。您一次採取多個步驟,最終容易摔倒。 – Thomas

+0

*我知道,有一個嘗試,你需要抓住。*從技術上講,不。但是,如果你試圖實現錯誤處理,你爲什麼還要考慮跳過catch? – shmosel

+0

你試圖抓住什麼錯誤? –

回答

0

一些基本規則:

  • 的環繞try只有行,你覺得有可能是一個例外,僅catch除了你知道。不要在try中涉及太多的代碼。像Eclipse這樣的現代IDE可以幫助您識別要捕獲的異常類型。要儘可能具體。

  • 但在實踐中,我看到PPL環繞多達線,try並添加catch通用(Exception e)最後,所以幾乎在整個方法的所有代碼是try。實用,簡單但醜陋。要快速開始這是可以接受的,但是我建議你在更好地瞭解Java的時候改進它。

  • 啊,最後,不要用catch操作條件分支,即不try/catch替代if,或嘗試你最好不要這樣做。


至於你的代碼...縮進正確,並嘗試讀取每個方法的Javadoc瞭解每一行可能會拋出哪些異常,並在清晰的結構小,分離方法將它們劃分。然後你可以開始考慮如何使用try/catch

+0

謝謝大家,你知道我可以用來學習基本java的最佳資源嗎? –

+0

我建議在這裏搜索,並閱讀您使用的每種方法的javadoc。至於書籍,我沒有讀過很多,所以我恐怕不能推薦任何書籍。如果有的話,Core Java最新版本。 – FaithReaper