簡體   English   中英

PHP 4嘗試捕獲替代方法?

[英]PHP 4 try catch alternative?

有人可以幫我將這段代碼翻譯成PHP 4嗎?

try
{
  $picture = PDF_open_image_file($PDF, "jpeg", $imgFile, "", 0); // This is the original statement, this works on PHP4
}
catch(Exception $ex)
{
  $msg = "Error opening $imgFile for Product $row['Identifier']";
  throw new Exception($msg);
}

基本上,當發生致命錯誤時,我需要獲取$ row ['Identifier'],以便知道導致此錯誤的產品。

提前致謝。

編輯:我不知道PHP_open_image_file做什么,但是有時我會收到如下錯誤,並且我需要獲取導致錯誤的產品標識符。

致命錯誤:PDFlib錯誤[1016] PDF_open_image_file:無法在第618行的/var/www/html/catalogue/pdf_make.php中打開JPEG文件“ picture / b01_le1x.jpg”以進行讀取(找不到文件)

我是否假設您使用的是pdflib PECL擴展名中的PDF_open_image_file()

如果是這樣,那么它將永遠不會在PHP 4上引發異常。我將假定通過結果報告錯誤狀態,該結果是一個int值,因此在發生錯誤的情況下可能<1。

//try
if (file_exists($imgFile)) {
    $picture = PDF_open_image_file($PDF, "jpeg", $imgFile, "", 0);
}

//catch
if (!$picture) {
   $msg = "Error opening $imgFile for Product $row['Identifier']";
   print $msg;
}

我已使用file_exists 更新此內容,以防止發生致命錯誤。

作為附錄的問題,為什么要嘗試在PHP4上拋出異常?

您可以通過設置默認的錯誤處理程序來捕獲一些問題(請參閱PHP手冊條目 ),但這不會使您捕獲E_ERRORS。

我認為這在PHP4中是不可能的,您需要升級到PHP5,以便它引發異常而不是E_ERROR。 您可能能夠在某些錯誤發生之前就將其捕獲-例如,通過在輸入文件上運行file_exists() ,但是您不太可能想到並捕獲PDFLib會發生的所有錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM