TypeScript Database Error Handling with custom class
TypeScript Error Handling : Exercise-7 with Solution
Write a TypeScript function that performs database operations. Create a custom error class, 'DatabaseError', for handling database-related errors. Use this error class to catch and log database errors.
Sample Solution:
TypeScript Code:
// Custom error class for database errors
class DatabaseError extends Error {
constructor(message: string) {
super(message);
this.name = 'DatabaseError';
}
}
// Simulated database operation function (replace with actual database operation)
function performDatabaseOperation(): Promise {
return new Promise((resolve, reject) => {
// Simulate a database error
setTimeout(() => {
reject(new DatabaseError('Database connection failed.'));
}, 1000);
});
}
// Function to perform database operations and handle errors
async function performDatabaseOperations(): Promise {
try {
await performDatabaseOperation();
console.log('Database operation successful.');
} catch (error) {
if (error instanceof DatabaseError) {
console.error(`Database Error: ${error.message}`);
} else {
console.error(`Unexpected Error: ${error.message}`);
}
}
}
// Execute the database operations and handle errors
performDatabaseOperations();
Explanations:
In the exercise above -
- First, we define a custom error class called 'DatabaseError' that extends the built-in Error class. It takes a custom error message as a parameter and sets the error name.
- The "performDatabaseOperation()" function simulates a database operation using a Promise and rejects it with a 'DatabaseError' containing a custom error message to simulate a database error.
- The "performDatabaseOperations()" function performs database operations using await and handles errors using a try-catch block. If a 'DatabaseError' is caught, it displays the custom database error message. Otherwise, it handles other unexpected errors.
Output:
Unexpected Error: Database connection failed.
TypeScript Editor:
See the Pen TypeScript by w3resource (@w3resource) on CodePen.
Previous: TypeScript API Error Handling with custom class.
Next: TypeScript input validation with custom class.
What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics