Tach!
Mit dem @ kann man keine Fehler lokalisieren. Man kann nur die Meldungen unterdrücken. Das nimmt man dann, wenn man genau weiß, dass man an der Stelle Meldungen bekommt, die Ursache aber bekannt ist
Diese dämliche Begründung scheint sehr beliebt zu sein.
Es wird ein Kredit ins Auge gefasst, man weiss genau, dass man ihn nicht zurückzahlen kann, aber anstatt die Ursache für das Geldproblem korrekt zu behandeln, wird der Kredit aufgenommen und die unweigerlich folgendenden Mahnungen der Bank ungeöffnet in die Tonne gedrückt.
Du hast mein Argument nicht verstanden oder den Teil "die Ursache aber bekannt ist" überlesen. Ich sagte nicht, dass man Fehlermeldungen um jeden Preis unterdrücken soll. Es geht mir darum, um bei deinem Beispiel zu bleiben, dass man ganz genau weiß, dass man den Kredit zurückzahlt, nur eben nicht auf den Mahnbrief hin, sondern selbstbestimmt auf eine besser passende Weise oder einem besser passenden Zeitpunkt.
Bei mir kann ich mich an einen Einsatz nur an getimagesize() erinnern. Damals gab es Fileinfo noch nicht (im Standard-Lieferumfang von PHP), mit dem man Dateitypen ermitteln konnte. Man kann getimagesize() jedoch auch auf Nichtgrafiken (hochgeladene beispielsweise) anwenden und bekommt so raus, ob es sich nicht um eine Grafik handelt, wenn das Ergebnis false ist. (Dazu verweist das Handbuch heutzutage auf besagtes Fileinfo.) Dummerweise hat diese Funktion dann aber auch eine Warnung ausgegeben. "Ja, liebes PHP, ich weiß, dass das keine Grafik ist. Ich erkenne das an deinem Rückgabewert, den ich auswerte. Du musst mir das nicht nochmal extra erzählen." Diese Warnung ist anscheinend Geschichte, denn beim Probieren eben kam sie nicht mehr.
Solche Situationen meine ich, in denen man aktive Fehlerbehandlung betreibt und eine Meldung in der Ausgabe oder im Logfile mehr stört als nützt. Das Unterdrücken ohne adäquate Eigenbehandlung bekommt von mir keine Empfehlung.
dedlfix.