Как заставить попытаться поймать работу в моем коде? - PullRequest
0 голосов
/ 28 мая 2020

Цель: при вызове 'initializeDriver' я не хочу, чтобы мне постоянно приходилось генерировать исключение IOexception в другом классе.

Как мне правильно реализовать «попробовать» и «поймать» в моем коде ? вот моя попытка, однако она работает некорректно. Я попытался осмотреться, но, возможно, неправильно понимаю.

Вот ссылка на мой gitHub на случай, если кто-то захочет взглянуть: https://github.com/intuitive86/Sample_Driver_Test

package resources;

import io.github.bonigarcia.wdm.WebDriverManager;
import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Base {

  public WebDriver driver;
  protected Properties dataProperties;

  public WebDriver initializeDriver() throws IOException {
    // Create global property file
    dataProperties = new Properties();
    InputStream dataPropertiesInputStream = null;
    try{
      InputStream = getClass().getClassLoader().getResourceAsStream("data.properties");
      dataProperties.load(dataPropertiesInputStream);
    } catch (IOException e) {
      e.printStackTrace();
    }
    String browserName = dataProperties.getProperty("browser");
    System.out.println(browserName);

    if (browserName.equals("chrome")) {
      WebDriverManager.chromedriver().setup();
      driver = new ChromeDriver();
    } else if (browserName.equals("firefox")) {
      WebDriverManager.firefoxdriver().setup();
      driver = new FirefoxDriver();
    }
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    return driver;
  }
}

1 Ответ

1 голос
/ 28 мая 2020

Мне непонятен ваш вопрос. Как я понял, вам нужно скрыть IOException, которое отображается из другой области.

try{
  InputStream = getClass().getClassLoader().getResourceAsStream("data.properties");
  dataProperties.load(dataPropertiesInputStream);
} catch (IOException e) {
  e.printStackTrace();
}

Удалить e.printStackTrace(); из блока catch и предоставить некоторый регистратор.

try{
  InputStream = getClass().getClassLoader().getResourceAsStream("data.properties");
  dataProperties.load(dataPropertiesInputStream);
} catch (IOException e) {
  logger.error("I got IO exception, no need to worry, it's normal", e.getMessage());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...