minstudio

에러 처리 (try-catch와 unknown)

에러가 났을 때 무엇이 던져질지는 아무도 모르기 때문에, TS는 catch 블록의 에러를 unknown으로 강제합니다. 따라서 instanceof Error와 같은 타입 가드로 에러의 정체를 한 번 확인한 후 처리해야 하는 매우 견고한 방어 코드를 작성하게 됩니다.

☣️ 미확인 위험 물질 (unknown 에러) 다루기 catch (error: unknown) { if (error instanceof Error) { ... } } 폭발한 에러가 어떤 객체인지 알 수 없으므로, 방호복(타입 가드)을 입고 안전이 확인된 뒤에만 접근 허용
☣️

미확인 위험 물질 (unknown 에러) 다루기

폭발한 에러가 일반적인 Error 객체인지, 아니면 이상한 문자열인지 알 수 없으므로, 방호복(instanceof 타입 가드)을 입고 안전한 객체임이 확인된 뒤에만 접근을 허용합니다.

try {
    throw new Error("서버 폭발!");
} catch (error: unknown) {
    // TS 4.0부터 catch의 error는 무조건 unknown 타입입니다! (과거엔 any였음)
    // 따라서 에러 객체인지 확실히 검사(타입 가드)한 후에만 접근할 수 있습니다.
    
    if (error instanceof Error) {
        console.log(error.message); // 안전하게 접근 가능!
    } else {
        console.log("알 수 없는 에러:", error);
    }
}
에러 처리 (try-catch와 unknown) | Minstudio