$ error:errors为空时,如何触发MarkLogic错误处理程序?

时间:2016-02-24 22:37:39

标签: marklogic

我正在运行MarkLogic HTTP服务器,并带有自定义错误处理程序。

在我试图点击的一个特定URL上,我将被路由到错误处理程序。并非所有页面都路由到错误处理程序,因此该站点的其余部分正在运行。

但是,这对我来说很困惑:我知道我正在点击指定的错误处理程序(由于记录),但外部变量$error:errors是一个空序列。

以下是在线文档所说的内容:

  

XQuery模块可以使用xdmp:get-response-code API获取HTTP错误代码和HTTP响应的内容。错误处理程序的XQuery模块也可以访问XQuery堆栈跟踪(如果有的话); XQuery堆栈跟踪作为外部变量传递给模块,名称为$ error:errors

所以它承认可能没有堆栈跟踪。

我的问题是 - 如果没有堆栈跟踪,则没有错误(?)。如果没有错误,为什么我被路由到错误处理程序?我该怎么调试呢?

1 个答案:

答案 0 :(得分:2)

404"找不到页面"错误被发送到自定义错误处理程序。因为它不是代码错误,因此没有错误堆栈,那么这可能是您在没有堆栈跟踪的情况下被发送到错误处理程序的情况。

我发现这是因为我的重写者正在向我发送一个不存在的文件。没有代码或语法错误,但它仍然是一个错误。