我有一个像这样的查询解析器:
class Test {
float* dev_ptr;
public:
Test() {dev_ptr = nullptr;}
GpuMat test() {
cv::Size size(8192,8192);
if (dev_ptr != nullptr) cudaFree(dev_ptr);
cudaMalloc((void**)&dev_ptr, size.width*size.height*sizeof(float));
return GpuMat(size, CV_32FC1, dev_ptr);
}
}
//main
Test t;
while(true) {
size_t free_mem, total_mem;
cudaMemGetInfo(&free_mem, &total_mem);
std::cout << free_mem << std::endl;
cv::namedWindow("test", CV_WINDOW_OPENGL | CV_WINDOW_NORMAL);
cv::imshow("test", t.test());
cv::waitKey(1);
}
当我执行查询时,结果是:
page: (root, args) =>
DB.page
.findById(args.id)
.then((result) => {
if (result == null) throw Error(`Page not found for ${args.id}`);
return result;
})
.catch((error) => {
log.error('Error in page query.', error.message);
}),
但它没有显示我在查询失败时抛出的错误。 我的期望:
{
"data": {
"page": null
}
}
答案 0 :(得分:0)
您在抛出错误后立即捕获错误。您需要完全省略.catch((error) => {
log.error('Error in page query.', error.message)
throw error
}),
,或者在记录后抛出捕获的错误:
{{1}}