try-catch-finally 執行流程:
文字版流程
javascript
function test(num) {
// num === 1:return 101
// num !== 1:return 202
try {
if (num === 1) {
return (num += 100);
} else {
throw new Error('num is not 1');
}
} catch (e) {
return (num += 200);
}
finally {
console.log(num); // 會先執行 try 或 catch 的 return 表達式,再執行 finally,最後 return
// → 101,if num === 1
// → 202,if num !== 1
}
}
console.log(test(1)); // → 101
console.log(test(2)); // → 202