🙌

[warning]'throw' of exception caught locally

2021/07/03に公開

'throw' of exception caught locally

Webstormをテスト使用しているといろいろなことを教えてくれます。

'throw' of exception caught locallyと表示されている写真

const response = await fetch("/api/newsletter", init);
const data = await response.json();

try {
	if (response.ok) {
		ntfCtxShowSuccess(notificationCtx, successNewsData);
	} else {
		throw new Error("Errorの内容")
	}
} catch (e) {
	console.log(e)
}

上記のようなことをしているとwebstormではwarningで
'throw' of exception caught locally
「ローカルで例外スローをキャッチしました」と教えてくれます。

これはif文で制御した例外は、制御できているため、定義的には例外ではない。
制御した先でエラーに適した処理を施したらどうか?と提案してくれているようです。
なので、わざわざ try catchで囲う必要はなく下記のようにシンプルに制御できるよね。
ということみたい。

const response = await fetch("/api/newsletter", init);
const data = await response.json();

if (response.ok) {
	ntfCtxShowSuccess(notificationCtx, successNewsData);
} else {
	ntfCtxShowError(notificationCtx, errorNewsData(data));
}

勉強になりますね。

情報元

ローカルでキャッチされた例外の「スロー」を修正する方法は?

例外を制御フローとして使用してみませんか?

Discussion