Мне кажется, что вы пытаетесь решить проблему неправильно ...
Когда ваша программа (или служба) аварийно завершает работу из-за необработанной ошибки, решение состоит не в том, чтобы выяснить, где и как "обработать" все необработанные ошибки, чтобы вы могли их игнорировать и продолжить выполнение. Я более четко сформулировал эту точку зрения в этом ответе , но короткая версия заключается в том, что, когда вы сталкиваетесь с необработанным исключением, правильная вещь - это сбой . Как указано в оригинальном ответе:
Тот факт, что произошло необработанное исключение, означает, что сервер находился в непредвиденном состоянии. Уловив исключение и сказав: «Не волнуйтесь, все хорошо», вы в конечном итоге оставляете поврежденный сервер включенным.
[. , , ]
Для перехвата всех исключений и продолжения процесса предполагается, что сервер может восстановиться после непредвиденного сбоя. Но это абсурд. Вы уже знаете, что сервер невостребованный тост: он разбился!
Гораздо лучше разрешить сбой сервера, чтобы в момент сбоя можно было получить дамп сбоя. Теперь у вас есть шанс узнать, что происходит.
Таким образом, на самом деле решение real включает в себя выяснение первопричины необработанного исключения и изменение вашего кода, чтобы в первую очередь предотвратить возникновение этой ошибки.
Мы никак не можем помочь вам сделать это, если вы не опубликуете точное полученное сообщение об исключении, и желательно полную трассировку стека. Но вы определенно хотите сохранить полученную отладочную информацию, а не придумать способ полностью ее игнорировать - это единственный способ реально решить проблему.
Если вы все еще настаиваете на игнорировании всех благонамеренных советов об обратном, вы найдете подход «совать голову в песок и игнорировать его» * 1029 * подробно здесь .