Необработанное исключение в службе Windows

Большинство Операционных систем сообщает пользователю или обработке вызовов, если приложение было успешно или нет. Это особенно полезно в сценариях, где сценарий может условно перейти (если тогда) на результатах программы. Что-то вроде:

// pseudo-code
screenscrape  http://mydatasource.com > results.txt
if errorlevel == 0 then
   processfile results.txt
else
   echo Screen Scraping Failed!
end if

Это состояние результата сделано через возвращаемое значение основного.

, В то время как некоторые компиляторы допускают пусто основной ради непротиворечивости и простоты, стандарт ANSI требует одного единственного прототипа основного:

int main(int argc, char *argv[]);

, поскольку в C, аргументы очищены вызывающей стороной, автор основного может забыть объявлять или обрабатывать аргументы argc & argv. Однако, если стандартные программы установки, которые называют основными, ожидают международное возвращаемое значение, и вместо этого не находят один, поведение может неопределенный.

Короткий ответ:

  • возвращаемое значение основного полезно для сценариев.
  • установка и стандартные программы очистки, которые вызывают основную потребность последовательный интерфейс для использования.
6
задан davek 25 October 2012 в 09:21
поделиться

2 ответа

Этот механизм будет работать для захвата необработанных исключений в любой среде, включая службы Windows. Однако существуют некоторые ограничения на то, какие исключения могут быть обработаны таким образом. Например, StackOverFlowException может быть необработанным, но, учитывая его характер, вы никогда не увидите, что оно проходит через обработчик UnhandledException.

Как вы думаете, почему это не работает? Вы пробовали подключиться к процессу с помощью отладчика, включить исключения первого шанса и посмотреть, что происходит?

4
ответ дан 17 December 2019 в 04:50
поделиться

Почему у вас есть необработанное исключение в службе? Что является исключением? Некоторые исключения имеют "особое поведение" ( и еще одна ссылка здесь для .NET 4 изменений в исключениях поврежденного состояния ).

Кроме того, что вы пытаетесь сделать в обработчике? Возможно, действия, которые вы пытаетесь выполнить в обработчике, ограничены при работе в качестве службы.

1
ответ дан 17 December 2019 в 04:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: