在现有代码中捕获 Zend_DB 异常的最佳方法?

发布于 2024-12-27 16:38:46 字数 133 浏览 1 评论 0原文

我需要在现有代码中的所有位置捕获 Zend_DB 异常。最好的方式和地点是什么?

我认为一种乏味的方法是将所有查询代码包装在 try catch 块中,但多个文件中有如此多的查询。因此寻找更好的替代选择。

感谢您的帮助。

I need to catch Zend_DB exceptions at all places in existing code. What would be the best way and place to do it?

One tedious way I think is to wrap all query code in try catch block but there are so many queries in multiple files. So looking for better and alternate option.

Thanks for your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吻泪 2025-01-03 16:38:46

对我来说,关键是@bububaba 对你的问题的评论:抓住并做什么?

最简单的事情 - 所以你不必深入研究 db/mapper/model/repository/service 控制器代码 - 就是修改你的 ErrorController 以在异常发生时“做一些不同的事情” Zend_Db_Exception

但这确实是顶级的东西,是在无价的明朝花瓶落地并碎成一百万块之前抓住它的最后一口气,可能离抛出的错误太远了,以至于你错过了更有意义的处理方法错误。一般来说,你越接近抛出,你就越了解抛出发生的上下文,然后通知/指导处理它的最佳方法(例如:让它冒泡到顶部,捕获/重新抛出、捕捉/吃等)。从这个意义上说,将较小的块包装到 try/catch 块中可能确实有好处。

只是大声思考。 YMMV。

To me, the key is @bububaba's comment to your question: Catch and do what?

The easiest thing to do - so you don't have to dig into db/mapper/model/repository/service controller code - is to just modify your ErrorController to "do something different" when the exception is a Zend_Db_Exception.

But that's really top-level stuff, the last gasp chance to catch the priceless Ming vase before it hits the floor and shatters into a million pieces, probably so far away from the thrown error that you are missing out on more meaningful ways of handling the error. In general, the closer you are to the throw, the better is your knowledge of the context in which that throw occurred, which then informs/guides the best way to handle it (ex: let it bubble up to the top, catch/rethrow, catch/eat, etc.). In that sense, there is probably real benefit in wrapping up smaller chunks into try/catch blocks.

Just thinking out loud. YMMV.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文