2011-08-24 59 views
0

我在我的網頁以下異常:異常打滑的異常處理程序

Fatal error: Call to a member function someFunction() on a 
    non-object in seomfile.php on line 15 

我近15行的代碼是:

try 
{ 
    return getObject()->someFunction(); // line 15 
} 
catch(Exception $e) { } 

我知道getObject()返回NULL,但爲什麼不是try擋住它?

回答

1

PHP混合異常和錯誤。您可以使用set_error_handler()throw an exception on error

+0

有一個try/catch錯誤? – Dani

+0

不(據我所知),這就是爲什麼他們添加了例外。但是通過set_error_handler(),您可以將錯誤「翻譯」爲異常。 – str

+0

@Dani這可以讓你編寫自己的錯誤處理程序。因此,在這個錯誤處理程序中,您可以拋出自己的異常,即:可以將錯誤轉換爲異常。 – NullUserException

0

因爲它不是一個例外,所以它是一個標準的老式錯誤。

1

你可以嘗試使用這樣的:

try { 
    $object = getObject(); 
    If (!is_object($object)) { 
     throw new Exception(); 
    } 

    return $object->someFunction(); 
catch (Exception $e) { 
}