Возможно, вы также захотите отловить такие вещи, как System.OutOfMemoryException и другие исключения, которые являются результатом HRESULT, возвращаемых из COM-объектов. Не все неудачные результаты HRESULT приводят к COMException.
Для большинства ошибок MAPI, которые я видел, коды ошибок не отличаются от тех, которые объявлены в стандартных заголовочных файлах C MAPI, поэтому я думаю, что оператор switch будет в порядке. Другими словами, этот метод не должен быть менее совместимым, чем клиентское приложение MAPI, написанное на C.