Директива @position
Предоставляет значимую информацию о положении в сообщениях об ошибках.
@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.