【问题标题】:Stopping Tridion publishing with exceptions停止 Tridion 发布异常
【发布时间】:2012-12-14 10:16:18
【问题描述】:

当 Tridion 2011 中存在某种情况时,我想停止发布。在 Razor 模板中我尝试:

throw new Exception("Exceptional condition!");

但是,在模板生成器中它显示“成功”。

有什么想法吗?

在 VBScript 模板中,我们会执行 Err.Raise,它会将错误抛回发布队列。

【问题讨论】:

    标签: tridion


    【解决方案1】:

    在基本的 Razor Mediator 代码中绝对没有任何 try/catch 机制,模板中的错误应该会浮出水面(正如您看到的常见的空引用错误,您可能会在剃须它时遇到很多!)。有些事情你一定要检查:

    1. 异常的代码路径是否正在执行?正如 Bart 建议的那样,您应该通过 Template Builder 运行它,看看那里是否有任何有用的日志。也可以添加您自己的调试语句来定位代码路径的去向。

    2. 您的异常是否在格式正确的 razor 语句中?

    3. 如果是新 CT,页面模板的代码是否允许渲染您的 CT?

    我只是设置了一个示例 TBB,如下所示(并将 TBB 添加到组件模板中):

    <div>Testing an Error</div>
    @{ throw new Exception("Exceptional condition"); }
    

    通过模板生成器运行在输出窗口中显示错误。 使用 CT 预览带有组件的页面将失败并显示错误。 发布页面显示“失败”状态,已处理项目详细信息显示“异常情况!”消息。

    希望对您有所帮助,如果您仍然遇到问题,请随时发布您的代码,我会进一步调试它!

    【讨论】:

      【解决方案2】:

      在我看来,Razor Mediator 正在捕获您的异常,而不是重新抛出它。但是快速浏览code 并没有直接告诉我会发生什么。

      里面有很多 try, catch 块(有些可能是正确的和预期的),大多数是记录警告。

      您在模板构建器日志中发现了什么有趣的东西吗?如果不是,我会尝试加载 Razor Mediator 代码并在您运行模板时对其进行调试,看看是什么捕获了您的异常,以及您是否可以轻松更改它(好在它是开源的)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-07-13
        • 2022-11-21
        • 1970-01-01
        • 2017-07-10
        • 2013-11-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多