Skip to content

Уточнение исключения

// Возвращает уточненный текст исключения для пользователя и
// категорию для вызова исключения с уточненным текстом.
//
// Параметры:
// ИнформацияОбОшибке - ИнформацияОбОшибке - исходная информация об ошибке.
// ЗаголовокОшибки - Строка - заголовок, уточняющий ошибку для пользователя и администратора.
// Если не указан, тогда возвращается текст исключения без уточнения.
//
// ОшибкаНаКлиенте - Булево - нужно указать Истина, если уточняется ошибка,
// которая изначально возникла на клиенте, так как для некоторых ошибок,
// например, ОшибкаДоступаКЛокальномуФайлу, ОшибкаРаботыСПринтером платформа
// делает разную обработку (доступ к локальному файлу на клиенте дополняется
// уточнениями, а на сервере не дополняется), соответственно требуется
// по-разному вызывать исключение с уточнением.
//
// Возвращаемое значение:
// Структура:
// * Текст - Строка - текст ошибки с уточнением (без уточнения, если ЗаголовокОшибки пустой).
// * Категория - КатегорияОшибки - категория для вызова исключения с уточнением.
// - Неопределено - если категорию нужно оставить неуказанной
// при вызове исключения с уточнением.
Результат = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, ЗаголовокОшибки, ОшибкаНаКлиенте);

Пример

Попытка
ВыполнитьКоманду(...);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
ЗаголовокОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не удалось выполнить команду %1 по причине:'"), ИдентификаторКоманды);
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, ЗаголовокОшибки);
ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке);
КонецПопытки;
Попытка
СоединениеСИнтернет.Получить(ПутьНаСервере, ПутьДляСохранения);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке);
ДляАдминистратора = ДиагностикаСоединенияСИнтернет(...);
ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,, ДляАдминистратора, ИнформацияОбОшибке);
КонецПопытки;