Чтение различных свойств коллекции Outlook.MAPIFolder.Items приводит к ошибке, когда пользовательские разрешения недостаточны, например, если папка видима, но недоступна для просмотра.
Описание ошибки: У вас недостаточно прав для выполнения этой операции над этим объектом.См. Контакт папки или системного администратора.
Я хотел перехватить эту ошибку следующим образом (в Outlook 2003):
Sub MySub(StartFolder As Outlook.MAPIFolder)
...
On Error GoTo ErrHandler
If (StartFolder.Items.Count = 0) Then Exit Sub 'this really is a permission test'
On Error GoTo 0
...
ErrHandler:
If ((Err.Number <> 0) And (Err.Number <> -2114519035)) Then
Call MsgBox("Error " & Err.Number & ": " & Err.Description, vbExclamation + vbOKOnly, StartFolder.Name, _
Err.HelpFile, Err.HelpContext)
...
End Sub
При тестировании моего обработчика ошибок я обнаружил другую ошибкуномер с таким же описанием ... и список быстро вырос до 62 ошибок с таким же описанием!Err.Number колеблется от -2114519035 до -1638395.Все номера ошибок выглядят как FFxxx70005 в шестнадцатеричном формате.
Почему существует несколько номеров Err.Number для одного и того же описания Err.Description?Как бы вы легко поймали эти ошибки и только их?Является ли структура шестнадцатеричной ошибки характерной для этой ошибки?
О, и мне не нравится идея тестирования описания (слишком специфичного для локали и версии).