Я использую System.Windows.Forms.WebBrowser
, чтобы сделать просмотр а-ля Visual Studio Start Page. Тем не менее, кажется, что элемент управления ловит и обрабатывает все исключения, молча опуская их! Не нужно говорить, что это очень неудачное поведение.
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
, чтобы он прекратил сброс исключений и просто отправил их естественным и ожидаемым образом? Или есть какой-нибудь хакерский способ выбросить исключение через собственные границы?