Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Precisazione tra try-catch e error handler

    Ciao ragazzi, vorrei cogliere una sfumatura tra i due metodi.

    Try-catch funziona solo se c'è un'eccezione "lanciata", giusto?
    Nel caso io per esempio voglia cancellare una cartella che non esiste (rmdir("blabla")) non viene lanciata un'eccezione ma un warning che devo manipolare con la questione dell'error handler.

    Non è proprio possibile "catchare" anche questi warning - anche i fatal error eccetera?

    Grazie in anticipo

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    prova a guardare questo articolo (è il primo che ho trovato, magari c'è di meglio):

    http://snippets.dzone.com/posts/show/1617


  3. #3
    Ciao gianaz, grazie per l'articolo interessante. In sostanza per fare quello che ho in mente è necessario un po' di workaround... forse per semplicità e leggerezza di codice è meglio rimanere con il classico error handler?

  4. #4
    Originariamente inviato da gianiaz
    prova a guardare questo articolo (è il primo che ho trovato, magari c'è di meglio):

    http://snippets.dzone.com/posts/show/1617

    Penso di sì

    della serie take it simple s.........

    i codici pasticciati proprio non mi piacciono
    nel framework konstrukt
    l'autore secondo me veramente un grande ha risolto
    con queste tre righe di codice che funzionano una meraviglia



    Codice PHP:
    function exceptions_error_handler($severity$message$filename$lineno) {
      if (
    error_reporting() == 0) {
        return;
      }
      if (
    error_reporting() & $severity) {
        throw new 
    ErrorException($message0$severity$filename$lineno);
      }
    }
    set_error_handler('exceptions_error_handler');

    function 
    debug_exception_handler($ex) {
      echo 
    "<p style=\"padding:50px; border: solid 1px #FF0000; font-family: monospace; \">";
      echo 
    "[b]Error :[/b]".$ex->getMessage()."
    "
    ;
      echo 
    "[b]Code :[/b]".$ex->getCode()."
    "
    ;
      echo 
    "[b]File :[/b]".$ex->getFile()."
    "
    ;
      echo 
    "[b]Line :[/b]".$ex->getLine()."

    "
    ;
      echo 
    nl2br($ex->getTraceAsString())."</p>";
      exit;
    }
    set_exception_handler('debug_exception_handler'); 
    Il bello è che non occorre neanche usare i blocchi
    try and catch una meraviglia
    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  5. #5
    Ehi whisher, potentissima anche la progettazione grafica del sito di Konstrukt!
    Grazie per la dritta, adeso si sperimenta

  6. #6
    Naturalmente va messo
    Codice PHP:
    error_reporting(E_ALL E_STRICT); 
    prima del codice postato.

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2007
    Messaggi
    398
    Notevole questo me lo segno


    Andrea

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.