今天我正在为新网站设计错误处理策略。我已经浏览了ColdFusion Excepiton的所有文档 处理
现在我有些疑惑。
处理404错误的最佳解决方案是什么?
onMissingTemplate()
方法Sitewide Missing Template
选项(CFAdmin)IIS custom 404 error handler
。 异常处理的最佳解决方案是什么?
onError()
方法或Site-Wide Error handler
?两者之间是否有任何显着差异
这两个?因为有一些查询,我确信查询只会在数据库失败时失败。因此,如果数据库失败,则使用try / catch进一步处理页面没有意义。在这些情况下我该怎么办?
我知道这个问题看起来有点主观,但我找不到比StackOverflow更好的地方。
答案 0 :(得分:3)
要处理 404,,最好在网络服务器级别处理它。
对于全站点缺失模板,您可以在CF Admin中指定相同内容。确保Sitewide错误处理程序文件位置应该相对于CF webroot而不是webserver root。依赖文件可以放在网络服务器上。
请参阅http://blogs.coldfusion.com/post.cfm/onmissingtemplate,了解IIS 自定义404错误处理程序。这篇最近的博客文章详细描述了404和错误处理。
答案 1 :(得分:1)
答案是你应该使用这三种。
onMissingTemplate()
是特定于应用程序的(请记住,您可以在单个CF实例上拥有多个应用程序)。Missing Template Handler
是特定于CF实例的。IIS custom 404 error handler
适用于非CF文件(例如.htm
,.html
等)。当然,您仍然可以将CF模板指定为自定义错误处理程序。仅供参考,特定于应用程序的onMissingTemplate()
方法优先于CF Admin Missing Template Handler
。如果没有特定于应用程序的onMissingTemplate()
,则会触发后者。
就异常处理而言,这取决于许多因素,但多层次的方法也是好的。