Поделиться через


Директива @position

Обновлен: Ноябрь 2007

Предоставляет значимую информацию о положении в сообщениях об ошибках.

@set @position(end | [file = fname ;] [line = lnum ;] [column = cnum])

Аргументы

  • fname
    Обязателен, если используется file. Строковый литерал, обозначающий имя файла. Может содержать или не содержать данные о диске и пути.

  • lnum
    Обязателен, если используется line. Любое неотрицательное целое число, представляющее строку созданного кода.

  • cnum
    Обязателен, если используется column. Любое неотрицательное целое число, представляющее столбец созданного кода.

Заметки

Код программы, написанный в JScript, иногда отличается от фактически компилируемого и выполняемого кода. В хост-средах, таких как ASP.NET, и в средствах разработки может создаваться и добавляться в программу собственный код. Этот код обычно не представляет интереса для разработчиков, но может запутать разработчиков при возникновении ошибок.

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

Пример

В следующем примере номер строки в файле изменен из-за добавления кода хост-средой JScript. Номера строк в столбце слева соответствуют изначальному исходному коду с точки зрения пользователя.

01  ..  // 10 lines of host-inserted code.
..  ..  //...
10  ..  // End of host-inserted code.
11  ..  @set @position(line = 1)
12  01  var i : int = 42;
13  02  var x = ; // Error reported as being on line 2.
14  03  //Remainder of file.

Требования

Версия .NET

См. также

Ссылки

Оператор @set

Директива @debug