передача брошенного исключения из метода расширения в вызывающую функцию в c # - PullRequest
0 голосов
/ 22 ноября 2018

Я написал метод расширения для 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; с тем же результатом.Любые предложения о том, как этого добиться?

...