Wenn ich in Node.js eine Methode habe, die eine Ausnahme auslöst, werden console.log-Anweisungen von dieser Methode nicht ausgelöst. Ich erkenne, dass ich im folgenden einfachen Testfall die Ausnahme vom Aufruf von readFileSync abfangen oder anderweitig in der Defensive sein sollte. Ich bin nur neugierig, ob mir jemand das Verhalten erklären könnte.Node.js: console.log Nachricht wird nicht angezeigt, wenn die Methode eine Ausnahme auslöst ... warum?
Einfache Testfall:
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");
Ausgang:
$ 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)
Es funktioniert wie erwartet für mich (Node 0.10.10) – JJJ
Funktioniert auch für mich (v0.10.21). – matth
Ja, habe nicht bemerkt, wie weit zurück mein Knoten war ... danke. – Shaun