Errorを継承してアプリ固有のエラー型を作る
class AppError extends Error {
constructor(
message: string,
public readonly code: string,
public readonly statusCode: number = 500
) {
super(message);
this.name = 'AppError';
if (Error.captureStackTrace) {
Error.captureStackTrace(this, AppError);
}
}
}
throw new AppError('Not found', 'NOT_FOUND', 404);nameプロパティを設定することでエラーログの識別が容易になる。Error.captureStackTraceでスタックトレースが正しく表示される。