Hola,
Con la directiva error_reporting y con la funcion error_reporting() (
www.php.net/error_reporting) puedes controlar que tipos de error se muestran o no. Con @ puedes hacer que una expresion en concreto no muestre mensaje de error.
Y otra cosa distinta es controlar por codigo que una funcion ha devuelto un error.
Son cosas distintas, no relacionadas. Una cosa es que no se muestre el mensaje de error, y otra comprobar que una funcion se ha ejecutado correctamente.
Saludos.