как обнаружить сбои приложения? - PullRequest
1 голос
/ 01 декабря 2010

, если я запускаю приложение .net и это приложение часто падает. Я хочу предложить процесс восстановления после сбоя, чтобы после сбоя пользователю отображалось сообщение, предлагающее перезапустить приложение. Как можно написать код, который делает это внутри приложения и по-прежнему работать после сбоя! звучит как странный цикл кода, но я хотел бы узнать ваш опыт по этому вопросу.

Ответы [ 3 ]

3 голосов
/ 01 декабря 2010

Вы можете подписаться на событие AppDomain.CurrentDomain.UnhandledException и делать вещи из обработчика событий.

1 голос
/ 01 декабря 2010

Напишите код в методе Main. (Предполагая, что это приложение Windows или консольное приложение, оно будет иметь одно).

Ваш основной метод выглядит примерно так:

public static Main(string[] args)
{
    try
    {
        RunApplication(args);
    }
    catch(Exception ex)
    {
        RunCrashRecovery(args, ex);
    }
}

Где RunApplication - это то, что вы бы изначально положили в Main, а RunCrashRecovery - код, который отправляет информацию о сбое и спрашивает пользователя, хотят ли они перезагрузить.

0 голосов
/ 01 декабря 2010

Что означает сбой? Если вы получили исключение, вы можете использовать try и catch для обработки этих ошибок.
Если нет никаких исключений, вы должны попытаться изменить код, чтобы программа не вылетала.
РЕДАКТИРОВАТЬ: Последнее возможно, если вы, например. использовать одни и те же переменные в нескольких потоках.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...