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