Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Fractals87
    Registrato dal
    Apr 2008
    Messaggi
    1,202

    [PDO] Gestione delle eccezzioni

    Ciao a tutti,

    Ho un problema che non so come affrontare :

    Avevo in mente di estendere la classe PDOExcetion per una gestione personalizzare in particolar modo nel costruttore.
    Volevo fare in modo che in primo luogo inviasse una mail, scrivesse un log e poi a fronte di particolari errori si comportasse in un determinato modo.

    Ho appreso che non è possibile settare come attributo una classe custom come invece per gli statement e percui non so come poter fare.

    Suggerimenti?
    Sto intraprendendo la strada giusta???

    Ciao e Grazie
    Che mestiere difficile.....essere da soli ancora di più

  2. #2
    E' sbagliato l'approccio... l'eccezione è l'eccezzione, ci vuole un listener che intercetti l'errore e agisca di conseguenza. Se hai una classe che gestisce la gestione col db (o piu di una) fai in modo che lancia eventi/errori e basta, e ne metti un'altra in ascolto attorno. Sul come, dipende molto dalla struttura del progetto e delle classi. O gli passi alla classe un EventDispatcher, intercetti dentro la classe del Db tutti gli errori col try/catch e invece di propagare direttamente PDOException lo wrappi in tue eccezioni e le lanci con l'event dispatcher, al quale avrai attaccatto un opportuno listener che ascolti un particolare evento e faccia di conseguenza un'azione, oppure trovi altri modi in base al tuo codice attuale. Il problema che ti trovi una classe db legata ad un event dispatcher, che avrebbe poco senso, quindi dovresti mettere di mezzo un qualche sorta di proxy che ti permetta trasparentemente di agire sui metodi della classe db ma che intercetti gli errori e usi il dispatcher per girarli ai listener.
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.