Front End/Typescript
[ Typescript ] Typescript Error Handling , 사용자 지정 Error 타입 생성
YJ_SW
2024. 3. 24. 17:53
728x90
try catch
try..catch 를 사용하면 스크립트가 죽는 것을 방지하고 에러를 잡아서 에러 처리할 수 있게 됩니다.
try {
// 에러가 없다면 try 안의 마지막 줄까지 실행됨
} catch (err) {
// 에러가 있다면 try 안 코드의 실행이 중단되고 catch(err) 블록으로 제어 흐름이 넘어간다.
// err은 에러 객체가 포함된다.
}
Typescript v4.4 부터는 error의 object가 unknown type으로 정의되어 ts error 가 발생합니다.
타입 가드 ( Type Guard )
try {
// error
} catch (err) {
console.log(err.message) //// Object is of type 'unknown'.ts(2571)
}
⇒ instanceof Error 로 타입을 좁혀주면 타입 에러를 제거할 수 있습니다.
이렇게 타입을 좁혀주는 것을 타입 가드 라고 합니다.
try {
// error
} catch (err) {
if(err instanceof Error){
console.log(err.message)
}
}
에러를 사용자 지정 Error 타입 를 생성하여 throw 처리 해주는 방식으로 처리하려 합니다.
throw
throw 연산자는 에러를 생성합니다.
사용자 지정 Error 타입 생성하기
기존의 Error 타입을 상속 받아 나만의 에러 클래스인 Exception 을 생성합니다.
export class Exception extends Error {
message: string // 에러 메시지
constructor(message: string) {
super()
this.message = message
}
}
에러가 있다면 Exception 객체를 생성하여 에러를 발생시킵니다.
try {
...
} catch(err) {
throw new Exception(`${err.code} : ${err.message}.`)
}
https://medium.com/@yujso66/번역-타입스크립트에서-전문가처럼-에러-처리하기-39d14f5cc6a2
https://inpa.tistory.com/entry/TS-📘-타입스크립트-커스텀-Error-처리하기 [Inpa Dev 👨💻:티스토리]
728x90