Error handling helps your program deal with problems without crashing. Logging records what happens so you can understand and fix issues.
Error handling and logging in Deno
try { // code that might fail } catch (error) { console.error("Error message", error); } // Logging example console.log("Informational message"); console.warn("Warning message"); console.error("Error message");
Use try...catch to catch errors and prevent crashes.
Use console.log, console.warn, and console.error to write messages to the console.
try { const data = JSON.parse('{"name":"Deno"}'); console.log(data.name); } catch (error) { console.error("Failed to parse JSON", error); }
console.log("Starting the app..."); console.warn("This is a warning message."); console.error("This is an error message.");
This program tries to read a config file and parse it. If the file is missing or JSON is bad, it logs an error message.
try { const text = Deno.readTextFileSync("./config.json"); const config = JSON.parse(text); console.log("Config loaded:", config); } catch (error) { console.error("Error loading config:", error.message); }
Always catch errors when working with files or external data.
Use clear and helpful messages in logs to make debugging easier.
Logging can slow down your program if overused, so log only what is necessary.
Error handling keeps your program running smoothly by managing problems.
Logging helps you see what your program is doing and find issues.
Use try...catch and console methods for simple error handling and logging in Deno.
Practice
try...catch in Deno?Solution
Step 1: Understand the role of
Thetry...catchtry...catchblock is used to catch errors that happen during program execution.Step 2: Identify the effect on program flow
By catching errors, the program can handle them gracefully and continue running instead of crashing.Final Answer:
To handle errors and keep the program running smoothly -> Option AQuick Check:
Error handling = To handle errors and keep the program running smoothly [OK]
- Thinking try...catch speeds up code
- Confusing error handling with logging
- Believing try...catch creates files
Solution
Step 1: Recall the console methods in Deno
Deno uses standard JavaScript console methods likeconsole.error()to log error messages.Step 2: Check each option's syntax
Onlyconsole.error('An error occurred')is valid syntax for logging errors.Final Answer:
console.error('An error occurred') -> Option BQuick Check:
console.error() logs errors = console.error('An error occurred') [OK]
- Using non-existent console methods
- Mixing console.log and error methods incorrectly
- Misspelling console.error
try {
throw new Error('Oops!')
} catch (e) {
console.log('Caught:', e.message)
}Solution
Step 1: Understand the throw and catch behavior
The code throws an error with message 'Oops!'. The catch block catches it and accessese.message.Step 2: Analyze the console.log output
The catch block logs 'Caught:' followed by the error message, so output is 'Caught: Oops!'.Final Answer:
Caught: Oops! -> Option AQuick Check:
Catch logs error message = Caught: Oops! [OK]
- Expecting full error object printed
- Confusing error message with undefined
- Thinking no output occurs
try {
const data = JSON.parse('{ bad json }')
} catch {
console.log('Parsing failed', e.message)
}Solution
Step 1: Check catch block syntax
In Deno (and modern JavaScript), catch block can omit error parameter, but to access error details, it must be declared.Step 2: Identify the problem with missing error parameter
The code tries to catch error but does not declare error variable, so error details can't be accessed if needed.Final Answer:
Missing error parameter in catch block -> Option CQuick Check:
Catch needs error param to access error = Missing error parameter in catch block [OK]
- Assuming catch() always requires error param
- Thinking console.log is wrong for errors
- Believing try block can't have code
Solution
Step 1: Understand the requirement for timestamp and message
The log must include current time in ISO format and the error message.Step 2: Check each option for correct formatting
try { throw new Error('Fail') } catch (e) { console.error(`[${new Date().toISOString()}] Error: ${e.message}`) } uses template literals to combine timestamp and error message in one console.error call, which is correct.Final Answer:
try { throw new Error('Fail') } catch (e) { console.error(`[${new Date().toISOString()}] Error: ${e.message}`) } -> Option DQuick Check:
Timestamp + error message in one log = try { throw new Error('Fail') } catch (e) { console.error(`[${new Date().toISOString()}] Error: ${e.message}`) } [OK]
- Logging error and timestamp separately
- Missing error parameter in catch
- Using console.log instead of console.error for errors
Ready to prove it?
Pass the test and this pattern moves unknown
