ИнформацияОбОшибке.ИсходнаяСтрока

Свойства · SourceLine

Тип: Строка. Текст строки исходного текста модуля, в которой произошло исключение.

Полное описание, параметры и ограничения

ИнформацияОбОшибке.ИсходнаяСтрока (ErrorInfo.SourceLine)

ИнформацияОбОшибке (ErrorInfo)

ИсходнаяСтрока (SourceLine)

Доступен, начиная с версии 8.1.

Использование:
Только чтение.
Описание:
Тип: Строка.
Текст строки исходного текста модуля, в которой произошло исключение.
Доступность:

Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Использование в версии:

Доступен, начиная с версии 8.1.

Методическая информация

Практические примеры

Получить содержательное описание намеренной ошибки

Вызываем деление на ноль и изучаем объект ошибки: описание, модуль, исходную строку, категорию и возможную причину.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Ошибки намеренно создаются на вымышленных значениях в учебной базе; файлы и рабочие данные не используются.

  2. ИнформацияОбОшибке и ОписаниеОшибки вызываются внутри Исключение, а не вне обработчика.


Сумма = 250;
Количество = 0;
Попытка
    Среднее = Сумма / Количество;
    Сообщить(Среднее);
Исключение
    Ошибка = ИнформацияОбОшибке();
    Сообщить(ОписаниеОшибки());
    Сообщить(КраткоеПредставлениеОшибки(Ошибка));
    Сообщить(ПодробноеПредставлениеОшибки(Ошибка));
    Сообщить("Описание: " + Ошибка.Описание);
    Сообщить("Модуль: " + Ошибка.ИмяМодуля);
    Сообщить(СтрШаблон("Строка %1: %2", Ошибка.НомерСтроки, Ошибка.ИсходнаяСтрока));
    Сообщить("Код: " + Ошибка.Код);
    Сообщить("Дополнительная информация: " + Ошибка.ДополнительнаяИнформация);
    Сообщить(Ошибка.ЯвляетсяОшибкойКатегории(КатегорияОшибки.ВсеОшибки));
    Если Ошибка.Причина <> Неопределено Тогда
        Сообщить("Причина: " + Ошибка.Причина.Описание);
    Иначе
        Сообщить("Отдельная вложенная причина не задана");
    КонецЕсли;
КонецПопытки;

Разбор по шагам

  1. Деление на ноль заставляет управление перейти в Исключение; Среднее не является успешным результатом.

  2. Сразу получаем объект ИнформацияОбОшибке и его текстовые представления.

  3. Отделяем описание для пользователя от технических сведений о модуле и строке.

  4. Код и дополнительная информация могут быть пустыми. Причину проверяем на Неопределено перед чтением свойств.

Как проверить результат

  1. Количество=0 приводит к сообщениям об ошибке, а не к значению средней цены 0.

  2. НомерСтроки указывает место в вашем модуле; он не обязан совпадать с номером строки HTML-примера.

  3. Проверка категории ВсеОшибки даёт Истина. Измените количество на 2: выводится 125, обработчик ошибки не выполняется.

Ожидаемый результат

Ошибка диагностирована на контролируемом входе; успешный результат не подменён фиктивным нулём.

На что обратить внимание

  1. Полный текст и исходная строка могут раскрывать секреты или личные данные — в рабочем приложении разделяйте пользовательское сообщение и защищённый технический журнал.

  2. Не сравнивайте локализованный текст ошибки для бизнес-логики. Для специально маркированных ошибок используйте согласованный код или категорию.

  3. Здесь ошибка поглощена ради просмотра диагностики. В реальной операции её нужно вернуть как явный статус либо передать вызывающему коду.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.