Результаты поиска
Запретить проглатывание исключений элементом управления WebBrowser
Я использую System.Windows.Forms.WebBrowser, чтобы сделать представление a-la начальной страницы Visual Studio. Однако, похоже, что элемент управления ловит и обрабатывает все исключения, молча погружая их! Не нужно говорить, что это очень неудачное поведение.
void webBrowserNavigating(object sender, WebBrowserNavigatingEventArgs e)
{
// WebBrowser.Navigating event handler
throw new Exception("OMG!");
}
Приведенный выше код отменит навигацию и проглотит исключение.
void webBrowserNavigating(object sender, WebBrowserNavigatingEventArgs e)
{
// WebBrowser.Navigating event handler
try
{
e.Cancel = true;
if (actions.ContainsKey(e.Url.ToString()))
{
actions[e.Url.ToString()].Invoke(e.Url, webBrowser.Document);
}
}
catch (Exception exception)
{
MessageBox.Show(exception.ToString());
}
}
Итак, то, что я делаю (выше), - это поймать все исключения и открыть окно, это лучше, чем молча терпеть неудачу, но все же явно далек от идеала. Я бы хотел, чтобы он перенаправлял исключение через обычный путь сбоя приложения, чтобы оно в конечном итоге становилось необработанным или обрабатывалось приложением из корня.
Есть ли способ сказать элементу управления WebBrowser , чтобы остановить потопление исключений и просто переслать их естественным и ожидаемым способом? Или есть какой-то хакерский способ бросить исключение через родные границы?
Запретить проглатывание исключений элементом управления WebBrowser
Я использую System.Windows.Forms.WebBrowser, чтобы сделать представление a-la начальной страницы Visual Studio. Однако, похоже, что элемент управления ловит и обрабатывает все исключения, молча погружая их! Не нужно говорить, что это очень неудачное поведение.
void webBrowserNavigating(object sender, WebBrowserNavigatingEventArgs e)
{
// WebBrowser.Navigating event handler
throw new Exception("OMG!");
}
Приведенный выше код отменит навигацию и проглотит исключение.
void webBrowserNavigating(object sender, WebBrowserNavigatingEventArgs e)
{
// WebBrowser.Navigating event handler
try
{
e.Cancel = true;
if (actions.ContainsKey(e.Url.ToString()))
{
actions[e.Url.ToString()].Invoke(e.Url, webBrowser.Document);
}
}
catch (Exception exception)
{
MessageBox.Show(exception.ToString());
}
}
Итак, то, что я делаю (выше), - это поймать все исключения и открыть окно, это лучше, чем молча терпеть неудачу, но все же явно далек от идеала. Я бы хотел, чтобы он перенаправлял исключение через обычный путь сбоя приложения, чтобы оно в конечном итоге становилось необработанным или обрабатывалось приложением из корня.
Есть ли способ сказать элементу управления WebBrowser , чтобы остановить потопление исключений и просто переслать их естественным и ожидаемым способом? Или есть какой-то хакерский способ бросить исключение через родные границы?