2013-05-15 50 views
4

我正在尋找一種處理session_start錯誤的一般方法,而不是處理一個特定錯誤的方法。有很多錯誤可能發生,例如會話目錄已滿,導致致命錯誤。我想要一種方法來捕獲這些錯誤並且乾淨地處理它們,而不必爲每種可能性編寫自定義處理程序。php session_start一般錯誤處理

像這樣的東西(但不是這個,因爲它不工作):

try{ 
    session_start(); 
}catch(Exception $e){ 
    echo $e->getMessage(); 
} 

所有幫助表示讚賞,在此先感謝。

+0

查找[set_error_handler](http://php.net/manual/en/function.set-error-handler.php) – Anigel

+0

另請參見[this answer](http://stackoverflow.com/questions/10331084/error-logging-in-a-smooth-way/10476589#10476589)通常在錯誤處理上。 –

回答

0

常規的PHP會話函數不會拋出異常,但會觸發錯誤。在撥打session_start之前,請嘗試寫入error handler function並設置錯誤處理程序。

function session_error_handling_function($code, $msg, $file, $line) { 
    // your handling code here 
} 

set_error_handler('session_error_handling_function'); 
session_start(); 
restore_error_handler(); 

但是,這只是爲了捕獲會話錯誤。更好的方法是創建一個通用錯誤處理程序,用於從錯誤和環繞代碼部分中創建例外,這些錯誤可能會在try ... catch塊中引發錯誤。