По моему мнению, помещать такую логику в библиотеку не очень хорошая идея. Я думаю, что приложение должно решить, как обращаться с исключениями (как обработанными, так и необработанными). Однако вы можете посмотреть на AppDomain.UnhandledException . Вы можете установить такой обработчик для CurrentDomain и сделать что-нибудь там. Однако, поступая таким образом, вы ограничиваете использование вашей библиотеки (например, подразумеваете, что библиотека будет использоваться только в одном домене). Кроме того, вы будете получать уведомления обо всех необработанных исключениях, даже совершенно не связанных с вашей сборкой.
Я думаю, что лучшая идея - позволить разработчикам, использующим вашу библиотеку, выполнять свою работу со всеми необработанными исключениями (возможно, с UnhandledException, установленным приложением).