56 lines
4.0 KiB
Markdown
56 lines
4.0 KiB
Markdown
---
|
||
title: Уточнение исключения
|
||
slug: общие-исключения-обработка-ошибок/уточнение-исключения
|
||
---
|
||
```bsl
|
||
// Возвращает уточненный текст исключения для пользователя и
|
||
// категорию для вызова исключения с уточненным текстом.
|
||
//
|
||
// Параметры:
|
||
// ИнформацияОбОшибке - ИнформацияОбОшибке - исходная информация об ошибке.
|
||
// ЗаголовокОшибки - Строка - заголовок, уточняющий ошибку для пользователя и администратора.
|
||
// Если не указан, тогда возвращается текст исключения без уточнения.
|
||
//
|
||
// ОшибкаНаКлиенте - Булево - нужно указать Истина, если уточняется ошибка,
|
||
// которая изначально возникла на клиенте, так как для некоторых ошибок,
|
||
// например, ОшибкаДоступаКЛокальномуФайлу, ОшибкаРаботыСПринтером платформа
|
||
// делает разную обработку (доступ к локальному файлу на клиенте дополняется
|
||
// уточнениями, а на сервере не дополняется), соответственно требуется
|
||
// по-разному вызывать исключение с уточнением.
|
||
//
|
||
// Возвращаемое значение:
|
||
// Структура:
|
||
// * Текст - Строка - текст ошибки с уточнением (без уточнения, если ЗаголовокОшибки пустой).
|
||
// * Категория - КатегорияОшибки - категория для вызова исключения с уточнением.
|
||
// - Неопределено - если категорию нужно оставить неуказанной
|
||
// при вызове исключения с уточнением.
|
||
Результат = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, ЗаголовокОшибки, ОшибкаНаКлиенте);
|
||
```
|
||
# Пример
|
||
```bsl
|
||
Попытка
|
||
ВыполнитьКоманду(...);
|
||
Исключение
|
||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||
|
||
ЗаголовокОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||
НСтр("ru = 'Не удалось выполнить команду %1 по причине:'"), ИдентификаторКоманды);
|
||
|
||
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке, ЗаголовокОшибки);
|
||
|
||
ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,,, ИнформацияОбОшибке);
|
||
|
||
КонецПопытки;
|
||
|
||
Попытка
|
||
СоединениеСИнтернет.Получить(ПутьНаСервере, ПутьДляСохранения);
|
||
Исключение
|
||
ИнформацияОбОшибке = ИнформацияОбОшибке();
|
||
|
||
Уточнение = ОбщегоНазначенияКлиентСервер.УточнениеИсключения(ИнформацияОбОшибке);
|
||
|
||
ДляАдминистратора = ДиагностикаСоединенияСИнтернет(...);
|
||
|
||
ВызватьИсключение(Уточнение.Текст, Уточнение.Категория,, ДляАдминистратора, ИнформацияОбОшибке);
|
||
КонецПопытки;
|
||
``` |