приложение, похоже, не ловит исключение - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть консольное приложение ac #.У меня также есть планировщик задач Windows, который я использую для запуска своего exe-файла каждое утро.

Я установил блок try catch (показанный ниже), чтобы зафиксировать любые ошибки и записать исключение в текстовый файл.

Фактический процесс в блоке try создает экземпляр Excel и считывает некоторые данные из рабочей книги.Код нормально работает.Однако, когда это терпит неудачу, ошибка, кажется, никогда не обнаруживается.

У меня есть другие приложения, которые используют тот же код в блоке catch для вывода исключения и знают, что эта часть работает.Просто кажется, что исключение не может быть пойман.Я вижу, что запланированная задача запустила файл.

Обновление

Я проверил средство просмотра событий (благодаря комментарию ниже) и вижу, что задача былауспешно запущен

 class Program
{
    static void Main(string[] args)
    {
        try
        {
            // do some work
        }
        catch(Exception ex)
        {
            // write output to log file
        }
    }
  }

1 Ответ

0 голосов
/ 27 сентября 2018

Если процесс создания Excel находится в потоке, отличном от основного потока, или в какой-либо его части, то блок try-catch не будет перехватывать исключение, и вам необходимо использовать UnhandledException

на основании этого https://stackoverflow.com/a/3133249/2696230

измените ваш код следующим образом:

class Program
{
    static void Main(string[] args)
    {
           System.AppDomain.CurrentDomain.UnhandledException += UnhandledExceptionTrapper;
        try
        {

            // do some work
        }
        catch(Exception ex)
        {
            // write output to log file
        }
    }

    static void UnhandledExceptionTrapper(object sender, UnhandledExceptionEventArgs e) {
      // handle the expception
    }
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...