CoffeeScript - Gestion des exceptions
Une exception (ou événement exceptionnel) est un problème qui survient lors de l'exécution d'un programme. Lorsqu'une exception se produit, le déroulement normal du programme est interrompu et le programme / l'application se termine anormalement, ce qui n'est pas recommandé. Par conséquent, ces exceptions doivent être traitées.
Une exception peut se produire pour de nombreuses raisons. Voici quelques scénarios dans lesquels une exception se produit.
- Un utilisateur a saisi des données non valides.
- Un fichier qui doit être ouvert est introuvable.
Exceptions dans CoffeeScript
CoffeeScripts prend en charge la gestion des exceptions / erreurs à l'aide de try catch and finallyblocs. Les fonctionnalités de ces blocs sont les mêmes qu'en JavaScript, letry bloc contient les déclarations exceptionnelles, le catch block a l'action à exécuter lorsqu'une exception se produit, et le finally block est utilisé pour exécuter les instructions sans condition.
Voici les syntaxes de try catch et finally blocs dans 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
le try le bloc doit être suivi par soit exactement un catch bloc ou un finallybloc (ou l'un des deux). Lorsqu'une exception se produit dans letry bloc, l'exception est placée dans e et le catchbloc est exécuté. L'optionfinally block s'exécute sans condition après try / catch.
Exemple
L'exemple suivant illustre la gestion des exceptions à l'aide de blocs try and catch dans CoffeeScript. Ici, nous essayons d'utiliser un symbole non défini dans l'opération CoffeeScript et nous avons géré l'erreur survenue en utilisant letry et catchblocs. Enregistrez ce code dans un fichier avec le nomException_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
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c Exception_handling.coffee
Lors de la compilation, il vous donne le JavaScript suivant.
// 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);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee Exception_handling.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante.
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
Le bloc enfin
Nous pouvons également réécrire l'exemple ci-dessus en utilisant finallybloquer. Si nous le faisons, le contenu de ce bloc est exécuté sans condition aprèstry et catch. Enregistrez ce code dans un fichier avec le nomException_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"
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c Exception_handling_finally.coffee
Lors de la compilation, il vous donne le JavaScript suivant.
// 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);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee Exception_handling_finally.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante.
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 déclaration du lancer
CoffeeScript prend également en charge throwdéclaration. Vous pouvez utiliser l'instruction throw pour lever vos exceptions intégrées ou vos exceptions personnalisées. Plus tard, ces exceptions peuvent être capturées et vous pouvez prendre une action appropriée.
Exemple
L'exemple suivant montre l'utilisation du throwdéclaration dans CoffeeScript. Enregistrez ce code dans un fichier avec un nomthrow_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()
Ouvrez le command prompt et compilez le fichier .coffee comme indiqué ci-dessous.
c:\> coffee -c throw_example.coffee
Lors de la compilation, il vous donne le JavaScript suivant.
// 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);
Maintenant, ouvrez le command prompt à nouveau et exécutez le fichier CoffeeScript comme indiqué ci-dessous.
c:\> coffee throw_example.coffee
Lors de l'exécution, le fichier CoffeeScript produit la sortie suivante.
Divided by zero error.