2011-08-24 57 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) { 
}