Hataları kapatmak PHP - tek bir dosyada sadece

4 Cevap php

I error_reporting(0); ve hakkında iyi farkında değilim ini_set('display_errors', "Off"); hata mesajları go away yapmak için.

What would be an appropriate way to do this - for a specific file or part of code only? Surpressing errors with @'s seems like a bad idea since it apparently slows the code down...

Nedeni? Biz nedeniyle ağ ayarlarında gerçekten güvenilmez bir gelişme LAN memcached sunucularının sayısı, böylece biz hataları birden çok kez her saat recieving vardır ve biz memcache kullanarak ya da tüm uygulama hatalarını kapatarak durağı dışında bu konuda yapabileceği bir şey yok hangi bize bir baş ağrısı veriyor olacak - geliştirme aşamasında ortasında :)

4 Cevap

Sen tür kendi sorusunu yanıtladı ettik. (0) error_reporting, belirli bir dosya için bunu yapmak için; hataları kapanacaktır. Ayrıca bir senaryoya birden çok kez diyebilirsin, sanırım.

Ayrıca kod bloğu üzerinde 'yakalama' hataları php istisnaları kullanabilirsiniz. Örneğin:

try {
    // code to ignore errors for here
} catch {
    // you can output a custom error here, but putting nothing here will effectively mean errors are ignored for the try block
}

Komut bir hata bunun içinde olsa bile, try bloğundan geçtiğimiz yayınlanmaya devam edecektir. Daha fazla bilgi için PHP Manual Entry bakın.

<?php

    // normal code

    // error_reporting returns the old error code
    $old_error_reporting = error_reporting(0);

    // your errorful code

    // reset error_reporting to its old value
    error_reporting($old_error_reporting);

    // normal code

Aslında hataları neden ne düzeltmek için iyi bir fikir olacağını rağmen.

Sen çalışma zamanı sırasında hata raporlama düzeyini değiştirebilirsiniz:

<?

   error_reporting(E_ALL);

   ... some code ....

   error_reporting(0);

   ... some more code ....

   error_reporting(E_ALL);

Ben başka bir yol biliyorum ama bu yeterli olmaz bir durumda düşünemiyorum. Yapabilir misin?

Bu uzun zaman önce gerçekten ama benim gibi birisi belki benim cevap kullanmak istiyorsunuz.

Ben bu tarz şeyleri yapmak gerektiğinde, ben sadece bu değişkenin gelen hataları görüntülemek DEĞİL için değişkenden önce @ koydu.

Örnek:

switch(@$var!="e") {

....

}