[인증 구현 - 컴포넌트] error 처리 관련 질문
2분 12초
인증 컴포넌트를 테스트해보는 과정에서 질문이 생겼습니다.

만약 백엔드 서버가 작동하지 하고 있다면,
이메일/패스워드 입력 후 로그인 버튼을 클릭하면
auth 스토어의 login 메소드에서 에러가 발생합니다.
그럼 이때 try/cath로 인해 "오류가 발생했습니다. 로그인을 다시 시도해 주세요."라는 alert 문구를 띄우게 됩니다.
만약에 AuthLogin 컴포넌트에서 정의한 try/catch으로
alert를 보여주고 싶다면 Auth 스토어의 login 메소드에서 try/catch를 하지 않으면 되는데, 이는 좋은 방법같지 않은거 같습니다.
아니면 on:click 이벤트 정의 메소드에서는 try/cathc를 안해는게 나을까요?
error를 catch 하는 것을 한 곳에서 관리(?)하여 에러 발생시 내가 원하는 동작(화면)을 보여주고 싶다면 어떻게 코드를 작성하는게 좋을까요?
Answer 1
1
최종 컴포넌트에서 오류를 제어하길 원하신다면
우선 login 메소드의 try catch를 제거하는 것이 아니고 catch에서 다음과 throw를 이용해
오류를 다시 한번 넘겨주면 될 것 같습니다 .
const login = async(email, password) => {
try {
const options = {
path: '/auth/login',
data: {
email: email,
pwd: password,
}
}
const result = await postApi(options)
set(result)
isRefresh.set(true)
router.goto('/')
}
catch(error) {
// alert('오류가 발생했습니다. 로그인을 다시시도해 주세요.')
throw error
}
}
그리고 최종적으로 처리하길 원하는 위치에서 이 넘겨진 오류를 받아
원하는 액션을 주시면 될 것 같습니다.
이때 오류에 따른 처리의 경우 전달받은 error객체에서 message나 code 등 을 분석해
그에 맞는 동작을 하게 하는 함수를 만들어 처리하는 것도 좋을 것 같습니다.
참고로 디버그를 통해서 보면 서버로 부터 전달받는 error의 경우 다음과 같은 형태의 객체가됩니다.
AxiosError {message: 'Request failed with status code 500', name: 'AxiosError', code: 'ERR_BAD_RESPONSE', config: {…}, request: XMLHttpRequest, …}
0
말씀해주신대로 depth가 있는 곳에서는 error 객체를 throw 해주고 최종적으로 전달받은 곳에서는 원하는 동작을 정의해주면 되겠네요!
늦은 시간임에도 불구하고 친절히 답변해주셔서 감사합니다 :)
스프링부트 서버 에러나요
0
17
1
DDD 는 마이바티스와 잘 맞지 않는건가요?
0
46
1
스프링부트 버전 문의드립니다.
0
38
1
Dto와 Entity 사용 관련 질문
0
31
2
강의 자료 코드
0
39
2
application.properties 작성 관련 질문
0
45
2
cascade 질문
0
39
1
관리자 페이지 상품 삭제 API
1
32
1
@types/bcrypt 설치과정이 누락된것같습니다.
0
48
1
process.env port key 에러
0
46
1
추상화
0
50
1
이미지 처리 라우트 관련 문의
0
67
2
지금 이게 맞는건지 문의드립니다.
0
44
1
프론트 api.js의 요청 headers 옵션의 cors 관련 설정 질문
0
61
2
[npm start 오류나는 분들을 위하여]노드 최신버전 사용하시면 오류가 발생합니다.
0
397
1
첫 메인 화면 $isLogin 인증 부분 궁금한점이 있습니다.
0
550
2
[앱 완성도 높이기3 - URL을 통한 보기모드 변경] 로그인 성공 후 라우팅 문제
0
311
1
[앱 완성도 높이기2 - 날짜보기] 타임존 관련 설정 문제
0
1556
1
[보기모드 변경 구현] 코멘트 리스트 조회 후 문제
0
448
2
[보기모드 변경 구현] 좋아요 보기 구현에서 문제 발견
0
423
1
[인증 구현 - store] setAuth 메소드 구현
0
355
1
[스토어 배치] 강의 내용 중 수정이 필요한 부분
0
344
1
[라우터 설정] 강의 내용 중 수정이 필요한 부분
0
576
1
아래와 같은 에러가 발생합니다. ㅜㅜ
0
1245
2

