Почитал форум.
Нашел книгу "Инфраструктура программных проектов_соглашения, идиомы и шаблоны для многократно используемых библиотек .NET".
Прочитал главу про исключения.
В общем понятно, что надо весь код переделывать на исключения.
Только не понятен один момент: как в точке перехвата исключения отследить всю цепочку ошибок?
Ведь исключения могли быть "проброшены" с формированием нового типа исключения.