Vorrei sapere come si può creare una gestione degli errori come quella di php.
Ad esempio quando si usa una funzione in modo errato php segnala il punto dove è stata usata e cosa è andato storto, vorrei riuscire a farlo anche con le mie funzioni.
Vorrei sapere come si può creare una gestione degli errori come quella di php.
Ad esempio quando si usa una funzione in modo errato php segnala il punto dove è stata usata e cosa è andato storto, vorrei riuscire a farlo anche con le mie funzioni.
http://www.php.net/manual/en/function.trigger-error.phpOriginariamente inviato da loHacker
Vorrei sapere come si può creare una gestione degli errori come quella di php.
Ad esempio quando si usa una funzione in modo errato php segnala il punto dove è stata usata e cosa è andato storto, vorrei riuscire a farlo anche con le mie funzioni.
Grazie mille era proprio quello che cercavo, non l'avevo mai visto.
Grazie ancora
Ma come si fa per risalire al punto dove viene usata la funzione che genera l'errore?
Con trigger_error mi viene riportata la posizione dove viene usata la funzione trigger_error e non quella della mia funzione come farebbe l'interprete php.
Ciao.
Un banale esempio:
set_error_handlerCodice PHP:
<?php
function stringUpperCase($str) {
if (!is_string($str)) {
trigger_error("I need a string ;) ", E_USER_ERROR);
}
return strtoupper($str);
}
function myErrorHandler($errnum, $errmsg, $file, $lineno) {
if($errnum == E_USER_ERROR) {
print "error: $errmsg\n
";
print "file: $file\n
";
print "line: $lineno\n
";
exit();
}
}
$handler = set_error_handler('myErrorHandler');
$up= stringUpperCase(1);
?>
Without faith, nothing is possible. With it, nothing is impossible
http://ilwebdifabio.it
Ok ma l'error handler indica la linea di trigger_error invece io vorrei indicasse la linea dove viene richiamata la mia funzione, in questo casoCodice PHP:
$up= stringUpperCase(1);
Se sei su php5 poi usare exceptionsCodice PHP:
<?php
function stringUpperCase($str) {
if (!is_string($str)) {
return false;
}
return strtoupper($str);
}
function myErrorHandler($errnum, $errmsg, $file, $lineno) {
if($errnum == E_USER_ERROR) {
print "error: $errmsg\n
";
print "file: $file\n
";
print "line: $lineno\n
";
exit();
}
}
$handler = set_error_handler('myErrorHandler');
$up= stringUpperCase(1);
if(!$up){
trigger_error("I need a string ;) ", E_USER_ERROR);
}
?>
Without faith, nothing is possible. With it, nothing is impossible
http://ilwebdifabio.it
Ho risolto con le exception di php 5.
Grazie mille