我正在尝试将try和catch异常添加到我的代码中,但不知道将它放在我的代码中的哪个位置。请有人帮忙。 Java新手。我知道要尝试一下你需要捕获。如果有人可以提供任何帮助,那将是件好事。如果您需要任何进一步的细节,请告诉我:)
我也使用了Page Object Modeling来编写我的代码。
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();
}
}
答案 0 :(得分:0)
一些基本规则:
在try
周围只包含您认为可能存在异常的行,而catch
只包含您知道的异常。不要在try
中涉及太多代码。像Eclipse这样的现代IDE可以帮助您识别要捕获的异常类型。尽可能具体。
但在实践中,我看到ppl与try
的行一样多,并且最后添加catch
通用(Exception e)
,所以几乎所有代码都在整个方法中在try
。实用,简单,但丑陋。要快速开始,这是可以接受的,但我建议您在更好地了解Java时对其进行改进。
啊,最后,不要使用catch
操纵条件分支,即不要用if
替换try/catch
,或尝试你最好不要这样做。
至于你的代码...正确缩进,并尝试读取每个方法的Javadoc以了解每行可能抛出的异常,并将它们分成小的,分离的方法以获得清晰的结构。然后,您可以开始考虑如何使用try/catch
。