[React] 코딩 타자 연습 사이트 만들기 (14) - 에러 예외 처리

Maple·2024년 10월 28일
0

코드보기 : https://github.com/maplesyrup0423/DevTyper

에러 예외 처리

gitHub API를 단기간에 많이 요청하면 403에러가 발생함
그렇기에 다음 사항을 적용함

  • fetchJSFilesFromGithub 의 재시도 횟수제한
  • 재시도 시 2초 동안 대기
  • 403 에러 처리
 const [isFetching, setIsFetching] = useState(false); // API 요청 중 여부
  const fetchDelay = 2000; // 요청 간격 (2초)
if (retryCount > 0) {
          console.log("재시도 중...");
          await new Promise((resolve) => setTimeout(resolve, fetchDelay)); // 2초 대기 후 재시도
          await fetchJSFilesFromGithub(retryCount - 1);
        }
  if (!response.ok) {
        console.log(`${randomRepo}의 GitHub API 요청 실패: ${response.status}`);
        if (response.status === 403) {
          console.error("API 요청이 금지되었습니다. 잠시 후 다시 시도합니다.");
          return; // 403 오류가 발생했을 때 더 이상 요청하지 않음
        }
        return; // 요청 실패 시 함수 종료
      }
       console.log("파일에 코드 조각이 없습니다. 다시 시도합니다.");
            setTimeout(() => {
              setIsFetching(false); // 요청 완료 후 상태 리셋
              fetchJSFilesFromGithub(); // 코드 조각이 없으면 다시 파일을 가져옵니다.
            }, fetchDelay);

자세한 수정사항은 깃허브 참고

0개의 댓글