我在理解此错误时遇到了一些问题。我有一个从端点调用的名为getDeliveryDate()的函数。此函数似乎是非异步函数,但出现了未处理的Promise错误:
// Deadlines increments are in minutes
function getDeliveryDate(
inputDate,
normalDeadline,
fastDeadline,
fastDelivery
) {
var deliveryDate = new Date();
try {
!fastDelivery
? deliveryDate.setTime(inputDate + normalDeadline * 60 * 1000)
: deliveryDate.setTime(inputDate + fastDeadline * 60 * 1000);
return deliveryDate;
} catch (error) {
console.log("getDeliveryDate error:".error, error);// <-- this line is okey, I am using colors library
}
这是调用getDeliveryDate
的地方...
try {
blockFields.finishDate = getDeliveryDate( // <-- the call
Date.now(),
req.body.blockOptions.deadline,
req.body.blockOptions.fastDeadline,
req.body.blockOptions.fastDelivery
);
} catch (error) {
console.log("getDeliveryDate error".error, error); // <-- this line is okey, I am using colors library
}
...
我缺少什么? getDeliveryDate是异步函数吗?如何正确处理其错误?
更新
我使用的变量后来被修改,因此不再存在。更正错误后,我仍然不确定如何捕获此函数的错误。
现在一切正常,但是如果我输入错误的变量,我仍然无法捕获该错误并得到此错误(即,如果我输入了错误的finishDate值):
(节点:50620)UnhandledPromiseRejectionWarning:ValidationError:阻止验证失败:finishDate:路径“ finishDate”的值“ Invalid Date”的强制转换为Date失败
为什么我的catch(错误)不起作用?
答案 0 :(得分:1)
将image = cv.imread("../images/img_fil_2.PNG") # load image
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY) # convert image to grayscale
edges = cv.Canny(gray, 100, 200) # detect edges of image
添加到用于启动Node的参数中。它应该向您显示未处理错误的堆栈跟踪。
但是,看起来--trace-warnings
这一行确实是罪魁祸首。您在catch块中有一个错误,但是没有什么可以捕捉那个错误。