Non dovresti gestire le notice con un errore 404.
Solitamente in produzione si configura php in modo tale da non mostrare alcuni tipi di errori, questo si fa da php.ini (si può fare anche a runtime ma lasciamo perdere per adesso) tramite due parametri che sono:
display_errors e error_reporting
Qui le pagine della doc:
http://php.net/manual/en/function.error-reporting.php
http://php.net/manual/en/errorfunc.c...display-errors
Quello che ti consiglio di fare su un sistema in produzione è impostare display_errors in modo da non far vedere nessun errore agli utenti ma mantenere l'error reporting attivo, in modo da poter loggare gli eventuali errori e correggerli.