다음과 같은 코드를 보자
if (!user) {
throw new NotFoundException('user not found')
}
이러한 코드들은 생각보다 굉장히 많이 나오게 된다. 서비스 로직상 당연히 들어가야하지만, 이러한 코드들을 작성하는 것은 우리들에게 피곤함을 준다.( 귀찮다 )
그래서 아래와 같은 예외 처리를 위한 공통 함수 구현을 생각 해보았다.
export const notFoundFilter = (target: any) => {
if (!target) {
throw new NotFoundException('Target not found');
} else {
return target;
}
};
별것 아니지만, 꽤나 유용하게 사용이 가능할 법 하다. 하지만 늘 개선의 여지는 있는 법. 아래와 같이 사용한다면 type 측면에서도 정확성을 더할 수 있다.
export function verifyExistence<T>(target: T, errorMessage: string = 'Target not found'): T {
if (target === null || target === undefined) {
throw new NotFoundException(errorMessage);
}
return target;
}