Error Handling Patterns
Error Messages
Read a caught error message.
error-messages
Caught errors carry details such as a `message`. Programs usually convert those details into user-facing or log-facing strings.
Error Messages
error_messages.js
Replay: real traced execution (multi-file project)
const code = "E2";
let message = "";
try {
if (code !== "OK") {
throw new Error(code);
}
message = "all clear";
} catch (error) {
message = "handled:" + error.message;
}
console.log("code=" + code);
console.log("message=" + message);
const code = "E1";
let message = "";
try {
if (code !== "OK") {
throw new Error(code);
}
message = "all clear";
} catch (error) {
message = "handled:" + error.message;
}
console.log("code=" + code);
console.log("message=" + message);
const code = "OK";
let message = "";
try {
if (code !== "OK") {
throw new Error(code);
}
message = "all clear";
} catch (error) {
message = "handled:" + error.message;
}
console.log("code=" + code);
console.log("message=" + message);
code ← E2, message ← (empty)
1const code→ E2 = "E2"; //@code="E1", "OK"2let message→ (empty) = "";if (code !== "OK")
4try {5 if (codeE2 !== "OK") {6 throw new Error(codeE2);7 }message ← handled:E2
8 message = "all clear";9} catch (error) {10 message = "handled:" + error.messageE2;11}values this stephandled:E2messageconsole.log("code=" + code);
10 message = "handled:" + error.message;11}1213console.log("code=" + codeE2);14console.log("message=" + messagehandled:E2);outputcode=E2 message=handled:E2
code ← E1, message ← (empty)
1const code→ E1 = "E1";2let message→ (empty) = "";if (code !== "OK")
4try {5 if (codeE1 !== "OK") {6 throw new Error(codeE1);7 }message ← handled:E1
8 message = "all clear";9} catch (error) {10 message = "handled:" + error.messageE1;11}values this stephandled:E1messageconsole.log("code=" + code);
10 message = "handled:" + error.message;11}1213console.log("code=" + codeE1);14console.log("message=" + messagehandled:E1);outputcode=E1 message=handled:E1
code ← OK, message ← (empty)
1const code→ OK = "OK";2let message→ (empty) = "";message ← all clear
1const code = "OK";2let message = "";34try {5 if (code !== "OK") {6 throw new Error(code);7 }8 message = "all clear";9} catch (error) {values this stepall clearmessageconsole.log("code=" + code);
10 message = "handled:" + error.message;11}1213console.log("code=" + codeOK);14console.log("message=" + messageall clear);outputcode=OK message=all clear