我需要在现有代码的所有位置捕获Zend_DB异常。这样做的最佳方式和地点是什么?
我认为一种繁琐的方法是将所有查询代码包装在try catch块中,但是在多个文件中有很多查询。所以寻找更好的和替代的选择。
感谢您的帮助。
答案 0 :(得分:0)
对我来说,关键是@bububaba对你的问题的评论:抓住并做什么?
最简单的事情 - 所以你不必深入研究db / mapper / model / repository / service controller代码 - 只是修改你的ErrorController
以“做一些不同的事情”当异常是一个Zend_Db_Exception
。
但那真的是顶级的东西,最后一次抓住无价的明式花瓶才能击中地板并破碎成一百万块的机会,可能距离你错过了更有意义的错误的抛出错误处理错误。一般来说,你越接近投掷,你对投掷的上下文的了解就越好,然后通知/指导处理它的最佳方法(例如:让它冒泡到顶部,捕获/重新抛出,捕获/吃等)。从这个意义上讲,将较小的块包装到try / catch块中可能有很大的好处。
大声思考。 YMMV。