Библиотека дополняет стандартную ИнформацияОбОшибке собственными метаданными, которые
распознаются РазборОшибки. Для этого используйте
ФабрикаОшибок или класс ПостроительОшибки.
Создать() начинает новую цепочку с кодом ошибки, сообщением и необязательными данными:
Ошибка = ФабрикаОшибок.Создать(
"validation.invalid_email",
"Некорректный адрес электронной почты",
Новый Структура("Адрес", Адрес)
);
ВызватьИсключение Ошибка;Создать(), ОбернутьКонтекстом() и Обернуть() возвращают стандартную
ИнформацияОбОшибке. Результат можно передать в ВызватьИсключение напрямую. После
перехвата создайте разбор для удобного доступа к коду, данным, подсказке и всей
цепочке:
Попытка
ВызватьИсключение Ошибка;
Исключение
Разбор = ДиагностикаОшибок.Разобрать(ИнформацияОбОшибке());
Сообщить(Разбор.КодОшибки());
Сообщить(Разбор.Подсказка());
КонецПопытки;Код ошибки состоит из двух или более частей, разделённых точками. Каждый сегмент
начинается с латинской или кириллической буквы, а затем может содержать буквы, цифры и
_. Регистр игнорируется. Текст сообщения можно изменять и локализовывать независимо от
кода.
ОбернутьКонтекстом() описывает выполнявшуюся операцию, не изменяя код ошибки в причине:
Ошибка = ФабрикаОшибок.ОбернутьКонтекстом(
Причина,
"Загрузка профиля пользователя",
Новый Структура("Идентификатор", ИдентификаторПользователя)
);Обернуть() создаёт новый кадр с кодом ошибки и сохраняет переданную причину в цепочке:
Ошибка = ФабрикаОшибок.Обернуть(
Причина,
"profile.load_failed",
"Не удалось загрузить профиль",
Новый Структура("Идентификатор", ИдентификаторПользователя)
);После оборачивания эффективным кодом будет profile.load_failed, но разбор позволит
найти и код исходной причины.
Для поэтапной настройки произвольной ошибки создайте ПостроительОшибки
напрямую:
Ошибка = Новый ПостроительОшибки("http.proxy_error", "Не удалось подключиться через прокси")
.Данные("Адрес", АдресПрокси)
.Подсказка("Проверьте переменную HTTPS_PROXY")
.URL("https://example.org/errors/http-proxy-error")
.Причина(Причина)
.Построить();Без вызова Причина() построитель создаёт новую цепочку. С указанной причиной он создаёт
обёрнутую ошибку. Данные(Ключ, Значение) поэтапно формирует структуру; повторный ключ
заменяет ранее установленное значение. Для готового произвольного значения используйте
ПроизвольныеДанные(Значение). Эти два режима нельзя смешивать в одном построителе.
Повторный вызов остальных fluent-методов заменяет ранее установленное значение.
URL(Значение) задаёт адрес страницы с подробным описанием ошибки. Библиотека проверяет
только строковый тип, не разбирает адрес, не ограничивает его схему и не выполняет сетевых
запросов.
Для стандартных кодов используйте СтандартныеОшибки, если нужна
готовая ошибка, или ПостроителиСтандартныхОшибок, если её требуется обогатить перед
построением.