未捕获 Azure DocumentDB 存储过程异常
Azure DocumentDB stored procedure exception not being caught
我的 DocumentDB 存储过程中有这个:
function mySproc(doc) {
let context = getContext();
let collection = context.getCollection();
let collectionLink = collection.getSelfLink();
try {
if (!collection.createDocument(collectionLink, doc, handler))
return;
numCreated++;
} catch (e) {
// Never happens.
}
}
不幸的是,如果我故意在 handler
回调中抛出,它不会被捕获到 catch 块中。它最终会停止整个存储过程的执行。这是预期的吗——回调是否有其自己的某种范围?
在像 JavaScript 这样的异步环境中,您通常会通过第一个参数将任何错误控制传递回回调(在您的术语中也称为处理程序)。如果你在你的处理程序中抛出,它将完全终止并将 return 错误包发送给客户端。它永远不会看到你的 catch 块。
如果您需要更多帮助,请告诉您的处理员。
我的 DocumentDB 存储过程中有这个:
function mySproc(doc) {
let context = getContext();
let collection = context.getCollection();
let collectionLink = collection.getSelfLink();
try {
if (!collection.createDocument(collectionLink, doc, handler))
return;
numCreated++;
} catch (e) {
// Never happens.
}
}
不幸的是,如果我故意在 handler
回调中抛出,它不会被捕获到 catch 块中。它最终会停止整个存储过程的执行。这是预期的吗——回调是否有其自己的某种范围?
在像 JavaScript 这样的异步环境中,您通常会通过第一个参数将任何错误控制传递回回调(在您的术语中也称为处理程序)。如果你在你的处理程序中抛出,它将完全终止并将 return 错误包发送给客户端。它永远不会看到你的 catch 块。
如果您需要更多帮助,请告诉您的处理员。