Authentication Error Class
Devise an AuthError class that extends Error to manage authentication-related errors distinct from other system errors, such as when login credentials are incorrect.
class AuthError extends Error {
constructor(message) {
super(message);
this.name = 'AuthError';
if (Error.captureStackTrace) {
Error.captureStackTrace(this, AuthError);
}
}
}
Defines a new class 'AuthError' extending the native JavaScript 'Error' object. This class will be used to handle authentication-specific errors, providing a custom error name 'AuthError' for ease of debugging.
function authenticateUser(username, password) {
// Replace this logic with real authentication mechanism
const isLoginSuccess = false;
if (!isLoginSuccess) {
throw new AuthError('Invalid username or password');
}
}
An example function 'authenticateUser' that simulates a login process. If the login fails, it throws an 'AuthError' with a message indicating that the username or password is invalid.
try {
authenticateUser('user', 'pass');
} catch (error) {
if (error instanceof AuthError) {
// Handle the authentication error
console.error('Authentication failed:', error.message);
} else {
// Handle other kinds of errors
console.error('An unexpected error occurred:', error);
}
}
Demonstrates usage of the 'authenticateUser' function within a try-catch block. If an 'AuthError' is caught, it is handled separately from other types of errors, allowing for more granular error handling specific to authentication.