javascriptで複数のタイプのエラーをキャッチ[重複]
このようなカスタムエラークラスを定義すると、次のようになります。
class MyCustom Error extends Error{ }
このような複数のエラーをキャッチするにはどうすればよいですか?
try{
if(something)
throw MyCustomError();
if(something_else)
throw Error('lalala');
}catch(MyCustomError err){
}catch(err){
}
?
上記のコードは機能せず、構文エラーが発生します
回答
1 TheOtterlord
MDNドキュメントが使用することをお勧めしますif/else
内部のブロックcatch
文を。これは、複数のcatch
ステートメントを持つことは不可能であり、その方法で特定のエラーをキャッチできないためです。
try {
myroutine(); // may throw three types of exceptions
} catch (e) {
if (e instanceof TypeError) {
// statements to handle TypeError exceptions
} else if (e instanceof RangeError) {
// statements to handle RangeError exceptions
} else if (e instanceof EvalError) {
// statements to handle EvalError exceptions
} else {
// statements to handle any unspecified exceptions
logMyErrors(e); // pass exception object to error handler
}
}
1 Hi-IloveSO
JavaScriptは弱い型付けです。if (err instanceof MyCustomError)
catch句内で使用します。