尝试和捕获异常处理

时间:2017-08-29 08:08:37

标签: java exception try-catch

我正在尝试将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();

}
}

1 个答案:

答案 0 :(得分:0)

一些基本规则:

  • try周围只包含您认为可能存在异常的行,而catch只包含您知道的异常。不要在try中涉及太多代码。像Eclipse这样的现代IDE可以帮助您识别要捕获的异常类型。尽可能具体。

  • 但在实践中,我看到ppl与try的行一样多,并且最后添加catch通用(Exception e),所以几乎所有代码都在整个方法中在try。实用,简单,但丑陋。要快速开始,这是可以接受的,但我建议您在更好地了解Java时对其进行改进。

  • 啊,最后,不要使用catch操纵条件分支,即不要用if替换try/catch,或尝试你最好不要这样做。

至于你的代码...正确缩进,并尝试读取每个方法的Javadoc以了解每行可能抛出的异常,并将它们分成小的,分离的方法以获得清晰的结构。然后,您可以开始考虑如何使用try/catch