【问题标题】:PHP Exception HandlingPHP 异常处理
【发布时间】: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);
    }
}

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

【问题讨论】:

标签: php codeigniter mongodb exception exception-handling


【解决方案1】:

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

只是将异常打印到屏幕上

真的吗?你确定吗?

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

如果是这样,那么我会 把它当作图书馆。

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

【讨论】:

  • 我在上面编辑过。可以禁用打印到屏幕,但我仍然无法处理异常。
  • 请您指导我到相关部分吗?我已经阅读了关于错误日志的部分。
猜你喜欢
  • 1970-01-01
  • 2013-02-25
  • 2016-02-29
  • 2016-03-07
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 2012-09-15
  • 2011-04-03
相关资源
最近更新 更多