Yine özel bir hata mesajı yazdırarak ederken, PHP hatası almamak

4 Cevap php

Yani:

@fopen($file);

Hataları yok sayar ve devam ediyor

fopen($file) or die("Unable to retrieve file");

Hatayı gözardı, program öldürür ve özel bir mesaj yazdırır

, Bir işlev hataları görmezden özel bir hata mesajı yazdırmak ve programı öldürmek için kolay bir yol var mı?

4 Cevap

Tipik:

if (!($fp = @fopen($file))) echo "Unable to retrieve file";

veya (dosya tanıtıcı atar) yolunu kullanarak:

@fopen($file) or printf("Unable to retrieve file");

İstisnalar kullanın:

try {
   fopen($file);
} catch(Exception $e) {
   /* whatever you want to do in case of an error */
}

http://php.net/manual/language.exceptions.php Daha fazla bilgi

İşte benim kendi çözüm. Kolay başvuru için bir sınıf küresel bir komut seviyesi veya statik değişken ya ihtiyacı olduğunu unutmayın. Ben başvuru için o sınıf tarzı yazdı, ama bu kadar uzun dizi bulabilirsiniz gibi ince.

class Controller {
  static $errors = array();
}

$handle = fopen($file) or array_push(Controller::errors,
  "File \"{$file}\" could not be opened.");

 // ...print the errors in your view

Ölmektense bir istisna ve yapabileceği formda :-) görmek merkezi hangisi moda işleme hatası