Надежность расширенных сведений об ошибках
Расширенная информация об ошибке не является надежной. Дополнительные сведения об ошибках нельзя использовать для построения логики кода. Необходимо проверить наличие расширенных сведений об ошибках, а также при наличии дампа, сохранения или регистрации этих сведений. Но не полагаться на информацию или ее содержимое.
В следующих причинах объясняется, почему расширенная информация об ошибке не является надежной:
- Последовательность и содержимое расширенных записей ошибок зависит от внутренней архитектуры системы, которая подлежит изменению. Определенная операция может пройти через NPFS в текущих системах, но завтра может пройти через TCP. Эти различные компоненты создают очень разные коды ошибок, поэтому проверки кода являются ненадежными и не рекомендуется.
- Распространение расширенных сведений об ошибке может быть отключено, как описано ранее. Если код обнаружения включен, приложение, скорее всего, перестанет работать в определенных средах.
- Распространение расширенных сведений об ошибках выполняется наилучшим образом. Распространение или создание расширенных сведений об ошибках может завершиться ошибкой, если на компьютере недостаточно памяти для обработки или распространения цепочки. В таких обстоятельствах цепочка будет удалена. Некоторые протоколы имеют ограниченную длину пакетов сбоя, так как они обычно не содержат много информации. Если длина цепочки превышает допустимую длину пакета, время выполнения RPC начинает удалять данные из цепочки в попытке поместить цепочку в пакет. Время выполнения сначала удаляет записи, начиная с предпоследней записи, переходя назад, пока не останутся только первые и последние записи. Если цепочка по-прежнему не помещается в пакет, время выполнения удаляет строковые параметры и имена компьютеров. Если строковый параметр удален, тип параметра не задан. Если запись удаляется, флаг EEInfoNextRecordsMissing устанавливается в следующей записи, а EEInfoPreviousRecordsMissing устанавливается в предыдущей записи.