这是关于在其他人的代码中抛出的异常的异常处理的一般问题。
我正在使用以下 Codeigniter PHP 库:https ://github.com/sepehr/ci-mongodb-base-model
它依赖于 MongoDB 的这个库:https ://github.com/alexbilbie/codeigniter-mongodb-library/tree/v2
如果我在第一个库中调用一个函数,然后它从第二个库中调用一个。有时第二个库会抛出我希望能够在我自己的代码中处理的异常,但是在异常抛出调用周围有一个 try-catch 语句,这意味着它在我有机会之前处理(我只是将异常打印到屏幕上)。
我的问题是:
如果不修改第一个和第二个库中的所有函数(即删除所有的 try 捕获),我该如何处理抛出的异常?
编辑
这是第二个库中的函数的排列方式:
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);
}
}
虽然我可以禁止打印错误(这当然只是为了调试),但我仍然无法知道它发生并处理它。