CoffeeScript - Gestione delle eccezioni
Un'eccezione (o un evento eccezionale) è un problema che si verifica durante l'esecuzione di un programma. Quando si verifica un'eccezione, il normale flusso del programma viene interrotto e il programma / applicazione termina in modo anomalo, il che non è consigliato, pertanto è necessario gestire queste eccezioni.
Un'eccezione può verificarsi per molti motivi diversi. Di seguito sono riportati alcuni scenari in cui si verifica un'eccezione.
- Un utente ha inserito dati non validi.
- Impossibile trovare un file che deve essere aperto.
Eccezioni in CoffeeScript
CoffeeScripts supporta la gestione di eccezioni / errori utilizzando l'estensione try catch and finallyblocchi. Le funzionalità di questi blocchi sono le stesse di JavaScript, iltry blocco contiene le dichiarazioni eccezionali, il catch block ha l'azione da eseguire quando si verifica un'eccezione e il finally block viene utilizzato per eseguire le istruzioni incondizionatamente.
Di seguito sono riportate le sintassi di try catch e finally blocchi in CoffeeScript.
try
// Code to run
catch ( e )
// Code to run if an exception occurs
finally
// Code that is always executed regardless of
// an exception occurring
Il try blocco deve essere seguito esattamente da uno catch blocco o uno finallyblocco (o uno di entrambi). Quando si verifica un'eccezione intry blocco, l'eccezione viene inserita in e e il catchblocco viene eseguito. L'opzionalefinally block viene eseguito incondizionatamente dopo try / catch.
Esempio
L'esempio seguente mostra la gestione delle eccezioni utilizzando i blocchi try and catch in CoffeeScript. Qui stiamo cercando di utilizzare un simbolo non definito nell'operazione CoffeeScript e abbiamo gestito l'errore che si è verificato utilizzando iltry e catchblocchi. Salva questo codice in un file con il nomeException_handling.coffee
try
x = y+20
console.log "The value of x is :" +x
catch e
console.log "exception/error occurred"
console.log "The STACKTRACE for the exception/error occurred is ::"
console.log e.stack
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c Exception_handling.coffee
Durante la compilazione, ti dà il seguente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var e, error, x;
try {
x = y + 20;
console.log("The value of x is :" + x);
} catch (error) {
e = error;
console.log("exception/error occurred");
console.log("The STACKTRACE for the exception/error occurred is ::");
console.log(e.stack);
}
}).call(this);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee Exception_handling.coffee
All'esecuzione, il file CoffeeScript produce il seguente output.
exception/error occurred The STACKTRACE for the exception/error occurred is ::
ReferenceError: y is not defined
at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:3:7)
at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:2:1)
at Module._compile (module.js:413:34)
at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee-script.js:134:23)
at compileScript (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:224:29)
at compilePath (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:174:14)
at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:98:20)
at Object.<anonymous> (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\bin\coffee:7:41)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:139:18)
at node.js:999:3
Il blocco finale
Possiamo anche riscrivere l'esempio sopra usando finallybloccare. Se lo facciamo, il contenuto di questo blocco viene eseguito incondizionatamente dopotry e catch. Salva questo codice in un file con il nomeException_handling_finally.coffee
try
x = y+20
console.log "The value of x is :" +x
catch e
console.log "exception/error occurred"
console.log "The STACKTRACE for the exception/error occurred is ::"
console.log e.stack
finally
console.log "This is the statement of finally block"
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c Exception_handling_finally.coffee
Durante la compilazione, ti dà il seguente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var e, error, x;
try {
x = y + 20;
console.log("The value of x is :" + x);
} catch (error) {
e = error;
console.log("exception/error occurred");
console.log("The STACKTRACE for the exception/error occurred is ::");
console.log(e.stack);
} finally {
console.log("This is the statement of finally block");
}
}).call(this);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee Exception_handling_finally.coffee
All'esecuzione, il file CoffeeScript produce il seguente output.
exception/error occurred The STACKTRACE for the exception/error occurred is ::
ReferenceError: y is not defined
at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:3:7)
at Object.<anonymous> (C:\Examples\strings_exceptions\Exception_handling.coffee:2:1)
at Module._compile (module.js:413:34)
at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\coffee-script.js:134:23)
at compileScript (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:224:29)
at compilePath (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:174:14)
at Object.exports.run (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\lib\coffee-script\command.js:98:20)
at Object.<anonymous> (C:\Users\Tutorialspoint\AppData\Roaming\npm\node_modules\coffee-script\bin\coffee:7:41)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Function.Module.runMain (module.js:447:10)
at startup (node.js:139:18)
at node.js:999:3
This is the statement of finally block
La dichiarazione di lancio
CoffeeScript supporta anche l'estensione throwdichiarazione. Puoi usare l'istruzione throw per sollevare le tue eccezioni incorporate o le tue eccezioni personalizzate. Successivamente queste eccezioni possono essere acquisite e l'utente può intraprendere un'azione appropriata.
Esempio
L'esempio seguente mostra l'utilizzo di throwdichiarazione in CoffeeScript. Salva questo codice in un file con nomethrow_example.coffee
myFunc = ->
a = 100
b = 0
try
if b == 0
throw ("Divided by zero error.")
else
c = a / b
catch e
console.log "Error: " + e
myFunc()
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c throw_example.coffee
Durante la compilazione, ti dà il seguente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var myFunc;
myFunc = function() {
var a, b, c, e, error;
a = 100;
b = 0;
try {
if (b === 0) {
throw "Divided by zero error.";
} else {
return c = a / b;
}
} catch (error) {
e = error;
return console.log("Error: " + e);
}
};
myFunc();
}).call(this);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee throw_example.coffee
All'esecuzione, il file CoffeeScript produce il seguente output.
Divided by zero error.