Ciao a tutti, dovrei fare questa cosa, cioè presentare in caso di problema grave un messaggio di errore esplicativo per chi programma, ma senza specificare (in produzione) percorsi o dipendenze del programma in esecuzione.

Per fare questo solitamente si throw new \Exception e si inserisce un messaggio associato che da indicazioni sull'errore mostrato. Come nell'esempio qui sotto:

prova.php
Codice PHP:
<?php

try {
    include_once 
__DIR__ '/prova.inc.php';
} catch(
Exception $e) {
    echo 
$e;
    exit;
}
?>
prova.inc.php
Codice PHP:
<?php
throw new Exception("Si è verificato un errore nel modulo");
il quale restituisce la seguente frase:
Exception: Si è verificato un errore nel modulo in C:\apache\users\marco\prove\apoleg-2\prova.inc.php:3 Stack trace: #0 C:\apache\users\marco\prove\apoleg-2\prova.php(10): include_once() #1 {main}
Ecco la parte dopo appare sempre in modo automatico, dando indicazioni sulla pagina dove si è verificato il problema e la riga (ed altro).
Queste indicazioni sono utili sia al programmatore che ad un eventuale attaccante, che così conoscerà al volo: la struttura delle directory del server, il tipo di webserver (apache, in qualche caso pure la versione dello stesso) e infine indicazioni sui file in causa, il tipo di errore, ecc...

Mi chiedo ora se si riesce a eliminare certe informazioni che in produzione sono pericolose.