【发布时间】:2013-11-06 14:28:04
【问题描述】:
这是关于在其他人的代码中抛出的异常的异常处理的一般问题。
我正在使用以下 Codeigniter PHP 库:https://github.com/sepehr/ci-mongodb-base-model
依赖于 MongoDB 的这个库:https://github.com/alexbilbie/codeigniter-mongodb-library/tree/v2
如果我在第一个库中调用一个函数,然后它从第二个库中调用一个。有时第二个库会抛出我希望能够在我自己的代码中处理的异常,但是在异常抛出调用周围有一个 try-catch 语句,这意味着它在我有机会之前处理(我只是将异常打印到屏幕上)。
我的问题是:
如果不修改第一个和第二个库中的所有函数(即删除所有的try catch),我该如何处理抛出的异常?
编辑
第二个库中的函数是这样排列的:
class SomeClass
{
function do_something()
{
...
try {
...
}
catch {
$this->_show_error('Update of data into MongoDB failed: ' . $exception->getMessage(), 500);
}
}
function _show_error($error_message = '', $response_code = 500)
{
//Inbuilt Codeigniter helper function which can be disabled from printing the error to the screen
show_error($error_message, $response_code);
}
}
虽然我可以禁止打印错误(这当然只是为了调试),但我仍然无法知道它发生并处理它。
【问题讨论】:
-
我认为这可能会对您有所帮助:stackoverflow.com/questions/15858372/…
-
方法是捕获整个 CI 应用程序,然后为这些异常创建自己的处理程序。或者只捕获你的库的 MongoException。为什么要使用这个已弃用的库?只需使用blog.mongodb.org/post/24960636131/… 类似于 CI activerecord
标签: php codeigniter mongodb exception exception-handling