2011-05-24 55 views
0

我正在看看kohanaphp,並且我對內部管理的錯誤感到困惑。當你初始化框架時,Kohana讓你能夠禁止錯誤的內部管理。啓用後,所有錯誤(通知,警告等)都將轉換爲使用ErrorException異常。 (http://php.net/manual/en/class.errorexception.php)Kohana - ErrorException

的Kohana使得大量使用此係統來檢測由PHP產生的誤差,在異常的形式。 例子:

try 
{ 
    $this->_connection = mysql_connect($hostname, $username, $password, TRUE); 
} 
catch (ErrorException $e) 
{ 
    // error connection. 
    throw new Database_Exception(':error', array(':error' => mysql_error()), mysql_errno()); 
} 

我的問題是:如果我禁用鋼鈑的錯誤處理,有破壞業務邏輯的風險?如果是這樣,爲什麼Kohana可以禁用?或者有什麼東西可以逃脫我嗎?

根據你這種處理錯誤的原生php正確嗎?

+0

關閉它只會停止在屏幕上顯示錯誤,它不會混淆業務邏輯。遇到的任何錯誤仍將被記錄。 http://docs.kohanaphp.com/general/errorhandling – martynthewolf 2011-05-24 08:11:51

回答

2

什麼martswite說只適用於2. *版本。不推薦在3. *版本中關閉錯誤標誌,因爲您會得到正常的PHP錯誤。

我的問題是:如果我禁用Kohana的錯誤處理,是否有損壞業務邏輯的風險?

如果您使用try catch來查看MySQL是否連接,那麼是的。

如果是這樣,爲什麼Kohana可以禁用?

這是我已經把給開發商(http://dev.kohanaframework.org/issues/4017)。我沒有看到任何理由讓它在3. *版本中出現,所以你並不是唯一一個感到困惑的人。

根據你這種處理錯誤的方法native php正確嗎?

是的,我喜歡那個包裹可能失敗在嘗試一些......趕在預謀@該方法的前面。與其他編程語言的工作原理相比,它更乾淨,更直接。