In Node.js, se ho un metodo che genera un'eccezione, le istruzioni di console.log da quel metodo non vengono attivate. Riconosco che nel semplice caso di test qui sotto dovrei prendere l'eccezione dalla chiamata readFileSync, o comunque essere difensivo a riguardo. Solo curioso se qualcuno potesse spiegarmi il comportamento.Node.js: il messaggio console.log non viene visualizzato se il metodo genera un'eccezione ... perché?
Semplice test case:
var fs = require('fs');
function readAFileThatDoesntExist(filename) {
console.log(filename);
fs.readFileSync(filename);
}
console.log("We're about to read a file that doesn't exist!");
readAFileThatDoesntExist("afile");
uscita:
$ node test.js
We're about to read a file that doesn't exist!
fs.js:338
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
^
Error: ENOENT, no such file or directory 'C:\blog\projects\bloggen\scripts\afile'
at Object.fs.openSync (fs.js:338:18)
at Object.fs.readFileSync (fs.js:182:15)
at readAFileThatDoesntExist (C:\blog\projects\bloggen\scripts\test.js:5:8)
at Object.<anonymous> (C:\blog\projects\bloggen\scripts\test.js:9:1)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
Funziona come previsto per me (Nodo 0.10.10) – JJJ
Funziona anche per me (v0.10.21). – matth
Sì, non mi rendevo conto di quanto fosse indietro il mio nodo ... grazie. – Shaun