我正在運行一個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'>"
所以,這將適用於任何情況下,$響應產生的輸出。但是,有些情況下它不會(非常少見)。在這些情況下,這是產生的;
Fatal error: Uncaught SoapFault exception: [soapenv:Server] Item not valid:
在閱讀這個問題時,聽起來像我應該做的是「捕捉」錯誤。如果發生致命錯誤,我想繞過$ response-> return-> line-> description的回顯,並用「找不到」等文本替換此輸出。這可能與if語句有關,例如「如果發生致命錯誤,輸出這個」?從我讀過的內容來看,這不是推薦的東西。任何幫助表示讚賞。
可能重複:http://stackoverflow.com/questions/6374345/php-soapfault-not-caught-by-異常處理程序 –
沒有答案是普遍有效的。理想情況下,您應該確定爲什麼會拋出「SoapFaul」:無論您身邊是邏輯錯誤,還是無法控制的運行時問題。 –
嗨,Alvaro,這不是一個邏輯錯誤。我知道錯誤發生的原因,相信與否,完全正常。我從數據庫生成報告,然後使用數據庫中的對象在另一個數據庫中搜索。但是,第二個數據庫中的對象可能不再作爲正常的業務過程。 – Kimomaru