簡體   English   中英

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 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);
    }
}

盡管我可以禁止打印錯誤(這當然只是為了調試),但我仍然無法知道該錯誤的發生並進行處理。

(應該是評論而不是答案,但有點長)

只是將異常打印到屏幕上

真? 你確定嗎?

您是否檢查它不會觸發錯誤而不是異常,並且正在未配置為生產服務器的系統上運行它?

如果是這樣的話,我會避開的方式明確這是一個圖書館。

(我真誠地懷疑有人會編寫愚蠢的代碼並在沒有很多警告的情況下發布它)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM