# #javascript #firebase #firebase-authentication #try-catch
Вопрос:
Я вызвал try catch перед каждым оператором if (), а также перед функцией createUserWithEmailAndPassword, и уловка никогда не срабатывает, и ошибка действительно возникает. Также путем копирования кода из документов firebase, и он также не будет работать.
Что я делаю не так? Я хочу поймать код ошибки «авторизация/электронная почта-уже используется» (и любой другой).
Я добавляю код без попытки поймать.
btnInitialRegister.addEventListener('click', (e) => {
load(strRegisterForm);
hideInitial();
const registerForm = document.querySelector('#registerForm');
const btnRegisterUser = registerForm.querySelector('#userRegisterBtn');
btnRegisterUser.addEventListener('click', e => {
const registerEmail = registerForm.querySelector('#registerEmail');
const registerPassword = registerForm.querySelector('#registerPassword');
const verifyPassword = registerForm.querySelector('#verifyPassword');
e.preventDefault();
if (registerPassword.value.length >= 6) {
if (registerPassword.value == verifyPassword.value) {
auth.createUserWithEmailAndPassword(registerEmail.value,registerPassword.value)
.then(userCredential => {
authUser = userCredential.user.uid;
auth.signOut()
console.log('logged out');
if (authUser) {
setTimeout(function(){registerForm.querySelector('#response').innerHTML = 'Usuario creado con exito. Estas siendo redirigido.'}, 5000);
load(strSignInForm);
}
})
} else {
registerForm.querySelector('#response').innerHTML = 'Las contraseñas no coinciden.'
}
} else {
registerForm.querySelector('#response').innerHTML = 'Las contraseñas deben tener un minimo de 6 caracteres.'
}
})
});
Ответ №1:
Я все понял! Я закрываю вопрос. Добавлено следующее после .затем заявление.
.catch(function (error) {
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode == 'auth/email-already-in-use') {
document.querySelector('#response').innerHTML = 'El email ya esta siendo utilizado.'
} else {
document.querySelector('#response').innerHTML = errorMessage;
}
})
Ответ №2:
Просто объясните, почему добавление этого .catch()
сработало для вас.
Вам нужно отловить ошибки, которые возникают при использовании .catch()
блока или catch
блока, если вы используете try-catch
блок. Блок catch содержит инструкции, указывающие, что делать, если в блоке try возникает исключение.
Если вы явно не поймаете исключение, оно прервет запущенный процесс, и остальная часть вашего кода не будет выполнена.