2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

VSCode1.43.0以降では即時関数内でtry-catchを使うとreturnが正しく解釈されない(1.46.0で解消)

Last updated at Posted at 2020-03-19

この記事で書いていたバグは、1.46.0で解消しました。


VSCode(1.43.0と1.43.1で確認)では、以下のコードでconsole.logの部分が「到達できないコード」として判定されてしまいます。

const message = (() => {
    try {
        /* エラーが発生しそうな処理 */
        return "success";
    } catch (e) {
        return "error:" + e;
    }
})();

console.log("message = " + message);


しかし、Node.js(12.16.1)で上記のコードを実行すると、console.logはちゃんと実行されます。

message = success


即時関数の中でtry-catchは使うべきではないのでしょうか。
そもそもこういった処理を即時関数化すべきではないのかも知れません。
ただ、VSCode 1.42.1 以前はちゃんとconsole.logが到達可能と判定されていましたし、よく分かりません・・・。

VSCodeのissueに報告したいんですが英語苦手なんですよね。
直るまでは1.42.1を使うことにします。

追伸

冒頭にも書きましたが、1.46.0(May 2020)でバグが解消していることを確認しました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?