- next cookie
- dataset
- API try catch 할 때 error 지금 log만 찍어놨잖아요. 아래 처럼
try {} catch (e) { console.log(e); }
그러면 로그 에러 뜨는게 싫어서 현재는 이런식으로 처리하고 있는데 이렇게 하면 문제가 있다고 생각이 돼서 여쭤봅니다. 왜냐하면 error 로그는 프론트 개발자인 저희랑 백 개발자만 알아야 하는데 이렇게 Error를 던지게 되면 만약 네트워크 에러가 있어서 문제가 생길때 어떤 문제인지 다 파악이 가능할 것 같아요.
단순히 thorw Error(error)로 처리를 하고 log를 찍는다? 이것도 말이 안되고, 에러 메시지를 상태관리한다?
그렇다면 이걸 어떤 방식으로 처리를 해야할지가 궁금합니다.
그리고 해당하는 API가 제대로 호출 되면 들어가는 값을 상태 관리할 필요성이 없을 것 같은데 요것에 대해서도 의견을 주시면 감사하겠습니다.
try () {} catch (e) { if (axios.isAxiosError(e)) { const error = e as AxiosError<ServerError>; if (error && error.response) { setState({ ...state, values: [] }); throw Error(error.response.data.message); } } }
⇒ 결론
개발자를 위한 것은 console.error(e) 만 찍어주면 된다.
//분기 처리가 필요 없으면 뭔가 잘못되었습니다!띄울 것 catch (e) { console.error(e); alert('뭔가 잘못되었습니다!'); }
export interface ServerError { code: string; message: string; }
// 분기 처리가 필요하면 분기를 한다 // 401 => 토큰이 만료되었습니다. // 403 => 권한이 없는거, 접근이 불가능합니다! // 404 => 보여줄 것이 없습니다. if (axios.isAxiosError(e)) { const error = e as AxiosError<ServerError>; if (error.status === '401') { // recoil 상태 삭제 setUser({}); router.push('/'); } }