gpt4 book ai didi

javascript - 为什么无法尝试/捕捉某些东西?

转载 作者:行者123 更新时间:2023-11-30 07:55:07 24 4
gpt4 key购买 nike

例如,我只是试图捕捉 ENOENT通过天真​​地这样做:

try {
res.sendFile(path);
} catch (e) {
if (e.code === 'ENOENT') {
res.send('placeholder');
} else { throw e; }
}

这行不通!

知道正确的方法是使用 sendFile 的错误回调,但是异常的基本语言特性在这里不起作用,这对我来说真的很令人惊讶和糟糕。

我猜也许 express 本身正在捕捉。他们不希望错误如此迅速地杀死服务器。这是可以理解的。

但我只收到这条蹩脚的消息:

Error: ENOENT: no such file or directory, stat '<file>'
at Error (native)

不太好。

最佳答案

由于documentation res.sendFileasync 函数,所以 try/catch 在这种情况下不起作用。如果您想处理 res.sendFile 结果,您必须将 callback 作为最后一个参数传递。

res.sendFile(path, function (e) {
if (e) {
if (e.code === 'ENOENT') {
res.send('placeholder');
} else {
throw e;
}
}
});

关于javascript - 为什么无法尝试/捕捉某些东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42128875/

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