Domanda

Ho qualche JScript, che fa alcune cose con una connessione ODBC. È stata generata un'eccezione dall'oggetto ODBC ActiveXObject e non catturato nel mio script. Mi aspettavo che il copione sarebbe uscita con un valore non 0, ma non lo fece. Chiunque sa perché questo è il caso e come ottenerlo per uscire con un valore non 0 su un'eccezione non rilevata?

È stato utile?

Soluzione

Il motore JScript può essere pensato come una macchina virtuale. Se il motore JScript stesso o l'host di script dovesse avere una qualche forma di guasto catastrofico si potrebbe aspettare per ottenere un codice di uscita diverso da zero (ad esempio un host lo script non riusciva a trovare una delle DLL di cui ha bisogno).

Tuttavia, se il programma script viene eseguito su questo 'VM' genera un'eccezione persino un uno non gestita che non costituisce un guasto nel motore o l'host.

Che cosa si può fare è inserire l'intero script in un blocco try e poi basta lanciare l'eccezione delle catture. Il motore di scripting sarà gestire questa eccezione generata esattamente come si voleva l'originale trattati: -

try
{

  // the rest of your script

}
catch(e)
{
  throw(e);  // returns nonzero exit code
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top