gpt4 book ai didi

javascript - 抛出错误并使用finally block 发送错误代码500

转载 作者:行者123 更新时间:2023-12-01 01:26:43 25 4
gpt4 key购买 nike

当请求中未指定文件时,我使用 throwExecption ,并且在函数末尾,我使用 finally block 来取消链接文件。

因此,如果未指定 file,我应该会收到 400 代码以及错误消息。

但是由于finally block 抛出异常被它覆盖

try {
if (!file) {
throw new BadRequestException('no file');
}
}
...
finally {
// On error or not : delete temporary file
await fse.unlink(file.path); // error 500 because Cannot read property 'path' of undefined
}

我找到了一种解决方法,可以检查 finally block 中的文件,但这会使代码变得多余。

try {
if (!file) {
throw new BadRequestException('no file');
}
}
...
finally {
// On error or not : delete temporary file
if (file) {
await fse.unlink(file.path);
} else {
throw new BadRequestException('no file'); <== redundancy
}
}

还有其他方法来处理这种错误吗?

最佳答案

您可以将 if block 移到 try/catch block 之外

if (!file) {
try {
...your block of code
}
...
finally {
// On error or not : delete temporary file
await fse.unlink(file.path);
}

} else {
throw new BadRequestException('no file'); <= = redundancy
}

关于javascript - 抛出错误并使用finally block 发送错误代码500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53704281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com