2017-08-29 130 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