PHP 异常处理


PHP Exception Handling

这是一个关于在人们的代码中抛出的异常的异常处理的一般问题。

我正在使用以下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);
    }
}

虽然我可以禁用打印错误(当然只是为了调试),但我仍然无法知道它发生了并处理它。

(应该是评论而不是答案,但有点长)

只需将异常打印到屏幕上

真?是否确定?

您是否检查过它不会触发错误而不是异常,并且您正在未配置为生产服务器的系统上运行它?

如果是这样,那么我会避开它作为一个图书馆

(我真诚地怀疑有人会写出如此愚蠢的代码并在没有很多警告的情况下发布它)