eddi: @ - Fehlerausgabe unterdrücken

Beitrag lesen

Moi moin,

Weil du damit -- wie gesagt -- lediglich die Fehlermeldung unterdrückst, aber nicht den Fehler. Stell dir z.B. einmal folgendes vor (beliebter Einsteigerfehler):

  
$fh = @fopen('/pfad/zu/1/Datei', 'r');  
while ($line = @fgets($fh))  
   // AUA!¹  
   tueEtwasMit($line);    // was passiert hier?  
@fclose($fh);
  1. Dann will ich mal hoffen, daß der Inhalt des Files nicht aus "false" oder "0" besteht, sonst wird nach Deinem Bespiel nichts verarbeitet.
  
$d='/pfad/zu/1/Datei';  
$c=filesize($d);  
if(is_resource($f=@fopen($d,'r'))){  
   while(!feof($f))  
      tueEtwasMit(fgets($f,$c));  
   fclose($f);  
}  
else mach_was_anderes();

-- Deshalb ist es besser, zusätzlich sämtliche Fehler abzufangen und Rückgabewerte zu prüfen, weil du dann _meistens_ weißt, was passiert.

Dem stimme ich zu. Da Fehlermeldungen nur beim Debuggen sinnvoll sind, wird man entweder die Fehlermeldungen im Programm mittel "@" oder durch Konfiguration unterdrücken. Genau das macht mein Beispiel.

Dies stellt aber keine Begründung dar, warum nun "@" vermieden werden sollte. Ganz im Gegenteil geben Fehlermeldungen PHPs zum Teil Informationen für mögliche Angriffe preis. Weiterhin gebe ich auch zu bedenken, daß -ob mit "@" oder ohne- die weitere Programmausführung nicht beeinflußt wird. "@" tut also an dem von Dir thematisiertem Punkt rein gar nichts zur Sache.
 Im Sinne von Stil also Guter Stil™, hätte ich Konfiguration statt "@" akzeptiert - schlampige Programmierung hingegen akzeptiere ich als Begründung nicht.

Gruß aus Berlin!
eddi