Результаты поиска
Необработанный обработчик исключений в .NET 1.1
Я поддерживаю приложение .NET 1.1, и одна из моих задач-убедиться, что пользователь не видит никаких недружественных уведомлений об ошибках.
Я добавил обработчики к Application.ThreadException и AppDomain.CurrentDomain.UnhandledException, которые действительно вызываются. Моя проблема заключается в том, что стандартный диалог ошибки CLR все еще отображается (до вызова обработчика исключений).
Джефф рассказывает об этой проблеме в своем блоге здесь и здесь . Но нет никакого решения. Итак, каков стандартный способ в .NET 1.1 обрабатывать необнаруженные исключения и отображать дружественное диалоговое окно?
Ответ Джеффа был отмечен как правильный ответ, потому что ссылка, которую он предоставил, содержит самую полную информацию о том, как сделать то, что требуется.
Запретить проглатывание исключений элементом управления 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 , чтобы остановить потопление исключений и просто переслать их естественным и ожидаемым способом? Или есть какой-то хакерский способ бросить исключение через родные границы?
Рекомендации по отлову и повторному выбрасыванию исключений .NET
Какие рекомендации следует учитывать при перехвате исключений и повторном их отбрасывании? Я хочу убедиться, что InnerException объекта Exception и стек trace сохранены. Есть ли разница между следующими блоками кода в том, как они обрабатывают это?
try
{
//some code
}
catch (Exception ex)
{
throw ex;
}
Против:
try
{
//some code
}
catch
{
throw;
}
Выгодно ли вообще использовать 'goto' в языке, поддерживающем циклы и функции? Если да, то почему?
У меня уже давно сложилось впечатление, что goto никогда не следует использовать, если это возможно. Просматривая libavcodec (который написан в C) на днях, я заметил, что он используется многократно. Выгодно ли вообще использовать goto в языке, поддерживающем циклы и функции? Если да, то почему?