我應(yīng)該在try-catch塊中編寫所有路由處理代碼嗎?

這是try…catch的好用法,還是我應(yīng)該把所有內(nèi)容都寫在try塊中?我試圖阻止嵌套的try…catch塊。

    router.post('/refresh', async (req, res) => {
        const refreshToken = req.body.token;
        let decoded;

        try {
            decoded = jwt.verify(
                refreshToken,
                process.env.REFRESH_TOKEN_SECRET,
            );
        } catch(error) {
            return res.sendStatus(401);
        }

        // … use decoded variable here
    });
? 最佳回答:

您永遠(yuǎn)不需要嵌套try/catches—一個(gè)catch()將捕獲它下面的所有錯(cuò)誤。

See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try...catch

Specifically:

try...catch語句標(biāo)記要嘗試的語句塊,并指定在拋出異常時(shí)的響應(yīng)。

但是,如果您不確定refreshToken是否存在(這是一個(gè)不信任web瀏覽器的好例子),可以將其添加到捕獲錯(cuò)誤的塊中:

    router.post('/refresh', async (req, res) => {
        let decoded;

        try {
            const refreshToken = req?.body?.token;
            if ( ! token ) {
                 throw new Error('Token not supplied!')
            }
            decoded = jwt.verify(
                refreshToken,
                process.env.REFRESH_TOKEN_SECRET,
            );
        } catch(error) {
            return res.sendStatus(401);
        }

        // … use decoded variable here
    });
主站蜘蛛池模板: 丰满岳乱妇一区二区三区| 激情爆乳一区二区三区| 久久一区二区精品综合| 亚洲成av人片一区二区三区| 久久久久久一区国产精品| 国产美女av在线一区| 精品一区中文字幕| 在线观看国产区亚洲一区成人| 中文字幕亚洲一区| 国产91精品一区二区麻豆网站| 国产一区二区不卡老阿姨| 日韩精品电影一区亚洲| 激情内射日本一区二区三区| 国产成人久久一区二区三区| 久久综合精品国产一区二区三区| 国产一区二区三区不卡观| 亚洲日本久久一区二区va| 色一情一乱一伦一区二区三区 | 狠狠做深爱婷婷久久综合一区| 免费一本色道久久一区| 国产精品无码一区二区三区在| 一区二区不卡在线| 一区二区高清视频在线观看| 日韩一区二区三区不卡视频| 亚洲a∨无码一区二区| 亚洲欧洲日韩国产一区二区三区| 一区二区精品在线| 精品欧洲av无码一区二区14| 3d动漫精品成人一区二区三| 亚洲国产系列一区二区三区| 亚洲.国产.欧美一区二区三区 | 国产精品区一区二区三| 精品国产一区二区三区无码| 亚洲AV无码一区二区三区网址| 久热国产精品视频一区二区三区| 无码一区二区三区亚洲人妻| 一区二区三区美女视频| 国产成人精品视频一区二区不卡| 国产精品揄拍一区二区| 国产亚洲综合精品一区二区三区| 精品国产毛片一区二区无码|