0

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

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

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

4

1 回答 1

1

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

只是将异常打印到屏幕上

真的吗?你确定吗?

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

如果是这样,那么我会避开这个图书馆。

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

于 2013-11-06T14:53:53.687 回答