8.2.6 오류 예외 처리하기
로그인 또는 회원가입 과정에서 발생할 수 있는 오류에 예외 처리를 해주겠습니다. 만약 작업 처리에 실패한다면 catch 부분에서 e 객체의 code를 통해 어떤 에러인지 판별할 수 있습니다.
어떤 code가 있는지는 다음 페이지에서 확인하세요.
• 로그인: https://bit.ly/3lcSvnL
• 회원가입: https://bit.ly/3eDh7n7
이 중에서 흔히 발생할 수 있는 오류에 예외 처리를 해주고, 나머지는 기본 오류 메시지인 ‘로그인에 실패하였습니다.’ 또는 ‘가입 실패’라는 문구를 보여주도록 구현하겠습니다.
onSubmit 함수를 다음과 같이 수정해주세요.
screens/SignInScreen.js - onSubmit
const async () => { Keyboard. (); const {email, password, confirmPassword} form; if (isSignUp && password !== confirmPassword) { Alert.alert('실패', '비밀번호가 일치하지 않습니다.'); return; } (true); const info {email, password}; try { const {user} isSignUp await (info) await (info); console. (user); } catch (e) { const messages = { 'auth/email-already-in-use: '이미 가입된 이메일입니다.', 'auth/wrong-password': '잘못된 비밀번호입니다.', 'auth/user-not-found': '존재하지 않는 계정입니다.', 'auth/invalid-email': '유효하지 않은 이메일 주소입니다.', }; const msg = messages[e.code] || `${isSignUp ? '가입' : '로그인'} 실패`; Alert.alert('실패', msg); } finally { (false); } };
이제 다음 작업들을 수행했을 때 오류 메시지가 올바르게 나타나는지 확인해보세요.
• 이미 가입한 이메일로 다시 회원가입 시도
• 잘못된 비밀번호로 로그인 시도
• 존재하지 않는 이메일로 로그인 시도
• 잘못된 이메일(예: @가 없음)로 로그인 시도
• 회원가입 시 비밀번호와 비밀번호 확인이 일치하지 않은 상태로 회원가입 시도