Errorを拡張する
TypeScript/JavaScriptでErrorを拡張する方法
こんな感じに拡張する
code:myError.ts
export class MyError extends Error {
constructor(message?: string) {
super(message);
// @ts-ignore only available on V8
if (Error.captureStackTrace) {
Error.captureStackTrace(this, MyError);
}
this.name = "MyError";
}
}
instanceofを使ってobject識別しようとするとコケるので注意
まあこれはErrorに限ったことではないけど
Deno(Nodeでも)で外部モジュールのクラスやSymbolを使用するときは少し慎重になる必要がある
References
MDN周りが一番正確
ES6 独自のエラークラス | Error - JavaScript | MDN
exception - What's a good way to extend Error in JavaScript? - Stack Overflow
super()でstackが継承されるらしい?
カスタムエラー, Error の拡張
JavaScript/TypeScriptで独自のエラークラスを利用する - くらげになりたい。
JavaScript でカスタム例外をしっかり使う - Qiita
#2022-03-25 00:16:04
#2021-09-09 23:02:50