Skip to content

Некорректная привязка номера строки в тексте ошибки к строке исполняемого кода #1429

@240596448

Description

@240596448
Функция Тест(Значение)
    а = 1;
    Возврат Значение;
КонецФункции

Массив = Новый Массив();
Тест(Массив[0]);

Данный код выбрасывет ошибку не при передаче значений в функцию, а на строке возврата значения
{Модуль ...\test.os / Ошибка в строке: 3 / Значение индекса выходит за пределы диапазона}
(ожидается на строке вызова)

Если же добавить к параметру Знач
Функция Тест(Знач Значение)
то версия 2.Х выдает коректную строку ошибки
{Модуль ...\test.os / Ошибка в строке: 7 / Значение индекса выходит за пределы диапазона}

а версии 1.Х выбрасывают исключение

System.ArgumentOutOfRangeException: Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
   в System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
   в OneScript.Language.LexicalAnalysis.SourceCodeIterator.GetCodeLine(Int32 lineNumber)
   в ScriptEngine.Machine.MachineInstance.SetScriptExceptionSource(RuntimeException exc)
   в ScriptEngine.Machine.MachineInstance.ExecuteCode()
   в ScriptEngine.Machine.MachineInstance.ExecuteModuleBody(IRunnable sdo)
   в ScriptEngine.Machine.Contexts.UserScriptContextInstance.OnInstanceCreation()
   в ScriptEngine.HostedScript.Process.Start()

Проверено на windows
2.0.0.471-rc4-28623755
1.9.1.7 и 1.8.4.54

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions