Я написал метод расширения для IWebElement
.
В этом методе расширения может возникнуть исключение.В моем случае я не хочу выбрасывать исключение в методе расширения, но хочу передать его вызывающему методу.
Это мой метод расширения:
public static IWebElement FindElementByID(this IWebElement baseElement, string searchString)
{
try
{
IWebElement foundElement = baseElement.FindElement(By.ID(searchString));
return foundElement;
}
catch (NoSuchElementException e)
{
new http.HttpErrorHandler().HttpError(browser.PageSource, e.Message.ToString());
throw new NoSuchElementException(e.Message.ToString());
}
}
Это несколькопример кода, который вызывает добавочный номер:
/// <summary>
/// This function fetches paymant data from opened Loan
/// </summary>
/// <returns></returns>
public static (int payedOnTime, int payedDelay, bool lastPaymentOnTime) FetchPaymentData()
{
browser.FindElementByID("payment-tab").Click();
BrowserOperations.WaitUntilIDIsVisible("card-tabs-content");
var element = browser.FindElementByID("card-tabs-content");
BrowserOperations.WaitUntilClassNameIsVisible("loan-table");
var table = element.FindElementByClassName("loan-table");
/* some calculation here */
}
При одном из этих вызовов (например, в следующей строке) может произойти ошибка, так как соединение было прервано, веб-сайт не работает или что-то еще:
var element = browser.FindElementByID("card-tabs-content");
Я хочу, чтобы исключение было выброшено в приведенной выше строке в методе FetchPaymentData
, но вместо этого исключение выдается в методе расширения.
До того, как я использовал throw new [...]
, я пытался простоиспользуйте throw;
с тем же результатом.Любые предложения о том, как этого добиться?