如何处理和处理致命错误


How to handle and work with fatal Errors

我在一个设备上运行一个php脚本,这个设备一直运行得很好,直到最近一个特殊情况导致了一个致命错误。

$soapClient = new SoapClient("/var/www/blah/someWSDL.wsdl", array('trace'=>true, 'exceptions'=>true,'location'=>"https://hostName:8443/axl",'login' => "userName",'password'=> "password"));
$response = $soapClient->getLine(array("routePartitionName"=>"PT-INHOUSE", "pattern"=>"$row[callingPartyNumber]"));
echo "<TR><TD class='body'>" .  $response->return->line->description . "</TD><TD class='body'>" 

因此,这将在任何$response产生输出的情况下工作。然而,在某些情况下,它不会(非常罕见)。在这些情况下,将生成;

Fatal error: Uncaught SoapFault exception: [soapenv:Server] Item not valid: 

在阅读这个问题时,听起来我应该做的是"捕捉"错误。在发生致命错误的情况下,我希望绕过$response->return->line->description的回显,并将此输出替换为"nothing found"这样的文本。这是否可以用if语句来实现,比如"如果发生致命错误,输出this"?据我所知,这是不推荐的。

一般来说,您应该通过检查抛出错误的条件来避免错误,并避免这些错误。如果无法避免错误,请使用这种结构:

try {
    // code that produces errors
} catch (Exception $e) {
    echo $e -> getMessage ();
    echo "Nothing found.";
}

详细信息:http://www.w3schools.com/php/php_exception.asp