ex11-04-1
実行結果
a: bを呼び出す前
b: cを呼び出す前
c: エラーをスローする
---- a呼び出し後のerr.stack ----
Error: c error
at c (https://marlin-arms.com/support/ljs3/example-mbl/ch11/ex11-04-1/main.js:13:9)
at b (https://marlin-arms.com/support/ljs3/example-mbl/ch11/ex11-04-1/main.js:8:3)
at a (https://marlin-arms.com/support/ljs3/example-mbl/ch11/ex11-04-1/main.js:3:3)
at https://marlin-arms.com/support/ljs3/example-mbl/ch11/ex11-04-1/main.js:23:3
---- 終わり -----
d: cを呼び出す前
c: エラーをスローする
---- d呼び出し後のerr.stack ----
Error: c error
at c (https://marlin-arms.com/support/ljs3/example-mbl/ch11/ex11-04-1/main.js:13:9)
at d (https://marlin-arms.com/support/ljs3/example-mbl/ch11/ex11-04-1/main.js:18:3)
at https://marlin-arms.com/support/ljs3/example-mbl/ch11/ex11-04-1/main.js:31:3
---- 終わり ----
ソース
function a() {
console.log('a: bを呼び出す前');
b();
console.log('a: 終了');
}
function b() {
console.log('b: cを呼び出す前');
c();
console.log('b: 終了');
}
function c() {
console.log('c: エラーをスローする');
throw new Error('c error');
console.log('c: 終了');
}
function d() {
console.log('d: cを呼び出す前');
c();
console.log('d: 終了');
}
try {
a();
} catch(err) {
console.log("---- a呼び出し後のerr.stack ----");
console.log(err.stack);
console.log("---- 終わり -----");
}
try {
d();
} catch(err) {
console.log("---- d呼び出し後のerr.stack ----");
console.log(err.stack);
console.log("---- 終わり ----");
}