Чтение различных свойств коллекции Outlook.MAPIFolder.Items приводит к ошибке, когда пользовательские разрешения недостаточны, например, если папка видна, но недоступна для просмотра.Почему существует несколько Err.Number для тех же самых опций?
Описание ошибки: У вас недостаточно прав для выполнения этой операции над этим объектом. См. Контакт с папкой или системный администратор.
Я хотел поймать эту ошибку таким образом (в 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 для тех же самых опций? Как бы вы могли легко ловить эти ошибки и только их? Является ли шестнадцатеричная структура числа ошибок, характерных для этой ошибки?
О, и мне не нравится идея тестирования описания (также с учетом языка и версии).
Очень четкое объяснение, спасибо! – raph82