処理を学ぶ 例外処理、入れ子
ハンズオンJavaScript (あんどうやすし(著)、オライリー・ジャパン)の3章(処理を学ぶ)、3.9(練習問題)の3-4、5の解答を求めてみる。
コード
console.log('3-4');
// Error: [終了処理1][例外処理2][例外処理3]
try {
try {
(() => {
try {
try {
throw Error('[例外1]');
} catch ({ message }) {
throw Error(`${message}[例外処理1]`);
} finally {
throw Error('[終了処理1]');
}
} catch ({ message }) {
throw Error(`${message}[例外処理2]`);
}
})();
} catch ({ message }) {
throw Error(`${message}[例外処理3]`);
}
} catch (e) {
console.log(e);
}
console.log('3-5')
const fn = (egg) => {
if (egg) {
console.log('卵があった。')
console.log('牛乳を6つ買った。')
} else {
console.log('卵がなかった。')
console.log("牛乳を1つ買った。")
}
}
fn(true);
fn(false);
入出力結果(Terminal, Zsh)
% node sample4.js
3-4
Error: [終了処理1][例外処理2][例外処理3]
at Object.<anonymous> (/Users/.../sample4.js:20:15)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
3-5
卵があった。
牛乳を6つ買った。
卵がなかった。
牛乳を1つ買った。
%