Javascriptの約束でライブラリ/未処理の例外と共にあなた自身の生成されたエラーを処理するには?私が直面している問題は、catch()
の約束の方法の「キャッチオール」性質によって生成されます。例えば約束されたエラー
、私は次のコードを持っている:物事の
somePromiseFunction()
.then(result => {
// External library or behaviour
someCodeThatCanThrowExceptions()
if (result.code === 1) {
throw 'My own exception'
}
})
.catch(err => {
// how do I know if this is an exception I don't know or something
// that I do want to actually handle?
});
多くは外部ライブラリはように例外をスローすることができ、then()
チェーンに間違って行くことができます。たとえば、このようなことが起こったときに "Generic error"を表示したいとします。
しかし、私はコードを検証して早く終了したいと思います(私がこの例でやっているように)、この場合は実際に自分のメッセージ「自分のエラー」を表示します。
私の "exit early" throw
と、コードの実行中に間違っている可能性のあるすべてのものを処理するにはどうすればよいですか?
.catchに 'if(err === 'My own exception')'とそれに続くカスタムハンドラとそれに続く汎用ハンドラをチェックするコードがあれば十分でしょうか? –
[このライブラリ](https://github.com/AlexanderMac/n-custom-errors)を宣伝しないでくださいが、必要なのはこれだけです。カスタムエラーを登録し、スローされたエラーがカスタムエラーであることを確認することができます。 – alexmac
[文字列を決してスローしない](https://stackoverflow.com/a/26020867/1048572) – Bergi