Механизм JScript можно рассматривать как виртуальную машину. Если бы сам движок JScript или хост скрипта имели какую-либо форму катастрофического сбоя, вы могли бы ожидать получить ненулевой код выхода (например, хост скрипта не смог найти одну из необходимых ему DLL).
Однако, если программа-скрипт, запускаемая на этой «ВМ», выдает исключение, даже необработанное, которое не является отказом в двигателе или хосте.
Что вы можете сделать, это поместить весь скрипт в блок try, а затем просто выбросить исключение в catch. Скриптовый движок будет обрабатывать это выброшенное исключение точно так, как вы хотели обработать оригинал: -
try
{
// the rest of your script
}
catch(e)
{
throw(e); // returns nonzero exit code
}