인프런 커뮤니티 질문&답변

고슴도치 키우기님의 프로필 이미지

작성한 질문수

[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스

01-03 퍼사드 패턴

return false 대신 try catch

해결된 질문

작성

·

255

·

수정됨

0

function TokenAPI(phNumber){    
    try {
        checkPhoneState(phNumber); //휴대폰 상태 점검      
    } catch (error) {
        console.log(error);
    }
    const token = createToken(); //토큰발급
    sendToken(phNumber,token); //휴대폰에 토큰 발송
}

function checkPhoneState(phNumber){
    if(phNumber.length != 11){
        throw new Error("올바르지 않은 번호입니다.");
    }
    else if(isNaN(phNumber) != false){
        throw new Error("올바르지 않은 번호입니다.");
    }
}

function createToken(){
    return String(Math.floor(Math.random() * 1000000)).padStart(6,"0");
}

function sendToken(phNumber,token){
    console.log(phNumber + "번호로 인증번호 " + token + "이 전송되었습니다.");
}

 

이런식으로 try catch 써도 되나요?

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.
네, 제공해주신 코드에서 try catch를 사용하는 것은 적절합니다. 휴대폰 번호의 상태를 점검할 때 발생할 수 있는 에러를 잡기 위해 try 블록 안에서 checkPhoneState 함수를 호출하고 있고, 해당 함수에서 조건에 맞지 않는 경우 Error 객체를 throw하여 예외를 발생시키고 있습니다. 그리고 catch 블록에서는 에러가 발생했을 때 로그를 찍어주고 있습니다. 이렇게 에러 핸들링을 함으로써 프로그램이 예외상황에서도 중단되지 않고, 에러를 로깅하거나 다른 처리를 할 수 있어 안정성을 높일 수 있습니다.

다만, 현재의 코드에서는 checkPhoneState 함수에서 발생한 에러를 기록만 할뿐, 토큰 생성과 발송을 중지하지 않고 계속 진행하고 있습니다. 사용자에게 토큰을 발송하지 않고 프로세스를 중단하려면 catch 구문에서 return 문을 추가하여 함수가 즉시 종료되도록 처리할 필요가 있습니다.

또한 실제 프로덕션 코드에서는 콘솔 로그보다는 로그 파일에 기록하거나 모니터링 시스템에 에러를 보고하는 등의 더 견고한 에러 핸들링이 필요할 수 있습니다.

감사합니다!