【问题标题】:How ColdFusion exception and 404 errors should be handled?ColdFusion 异常和 404 错误应该如何处理?
【发布时间】:2015-02-17 11:59:04
【问题描述】:

今天我正在为一个新网站设计错误处理策略。我已经浏览了 ColdFusion Excepiton 的所有文档 处理。

现在我有些怀疑了。

处理 404 错误的最佳解决方案是什么?

  1. 使用onMissingTemplate()方法
  2. Sitewide Missing Template 选项(CFAdmin)
  3. IIS custom 404 error handler

异常处理的最佳解决方案是什么?

  1. 我应该使用什么来记录错误onError() 方法或Site-Wide Error handler?之间是否有显着差异 这两个?
  2. 是否需要对我编写的每个查询都使用 try/catch 块?

因为有一些查询我确信只有当数据库失败时查询才会失败。因此,如果数据库失败,则使用 try/catch 进一步处理页面是没有意义的。在这些情况下我应该怎么做?

我知道这个问题看起来有点主观,但我找不到比 StackOverflow 更好的地方。

【问题讨论】:

    标签: exception-handling coldfusion coldfusion-10


    【解决方案1】:

    为了处理404,最好在网络服务器级别处理它。

    对于Sitewide Missing Template,您可以在 CF Admin 中指定相同的内容。确保站点范围的错误处理程序文件位置应相对于 CF webroot 而不是 webserver root。依赖文件可以放在网络服务器上。

    有关 IIS 自定义 404 错误处理程序,请参阅http://blogs.coldfusion.com/post.cfm/onmissingtemplate。这篇最近的博客文章详细描述了 404 和错误处理。

    【讨论】:

    • 你能解释一下在什么情况下我们应该在Application.cfc中使用“onMissingTemplate()”方法吗?
    • onMissingTemplate() 方法中包含 404.cfm 与在 CFAdmin 中将 404.cfm 指定为站点范围的缺失模板之间的确切区别是什么?两个服务器的目的相同吗?
    • onMissingTemplate() 仅特定于 404,但是,当 ColdFusion 在处理请求时遇到错误时,将使用 Site-wide Error Handler
    • 两者都一样。
    • 那我换个说法吧。在功能方面,两者是相同的。显然,如果在 Application.cfc 中指定了一个函数,那么它将具有优先权。 onMissingTemplate() 可用于多个应用程序,CF Admin 中的 Missing Template Handler 特定于该特定实例。
    【解决方案2】:

    答案是你应该使用这三个。

    1. onMissingTemplate() 是特定于应用程序的(请记住,您可以在一个 CF 实例上拥有多个应用程序)。
    2. Missing Template Handler 是特定于 CF 实例的。
    3. IIS custom 404 error handler 适用于非 CF 文件(例如,.htm.html 等)。当然,您仍然可以将 CF 模板指定为自定义错误处理程序。

    仅供参考,特定于应用程序的 onMissingTemplate() 方法优先于 CF Admin Missing Template Handler。如果没有特定于应用程序的onMissingTemplate(),则会触发后者。

    就异常处理而言,这将取决于许多因素,但多层方法还是不错的。

    【讨论】:

      猜你喜欢
      • 2019-12-19
      • 1970-01-01
      • 2012-11-16
      • 1970-01-01
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      相关资源
      最近更新 更多