我在一个设备上运行一个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