Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Try Catch dinamica.

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208

    Dinamica d try-catch.

    Salve a tutti,
    ho due function una di seguito all'altra le quali gestiscono una chiamata a db tramite mysqli_fetch_assoc, mentre la seconda esegue una query SUM calcolando il totale corrispettivo dei dati richiamati dalla prima:

    Codice PHP:
    public function QuoteAss() {

            
    $dbc $this->connection;
            
    $query "SELECT etc.etc;";

            
    $result mysqli_query($dbc$query);
                 while (
    $row mysqli_fetch_assoc($result)) {
                               
    etc.etc.
           } 
    Codice PHP:
    public function TotaleQuoteAss() {
            
    $dbc $this->connection;
            
    $query2 "SELECT SUM etc.etc.; ";
           
    $count mysqli_fetch_assoc(mysqli_query($dbc$query2));
            if (!
    $count) {
                echo 
    "Totale quote non disponibile";
            } else {
                
    $this->quote_ass $count['totale_quote_ass'];
                return 
    $this->quote_ass;        }    } 
    Il blocco funziona perfettamente fino a che nella tabella ci sono records, caso non scontato. Mentre quando è vuota, le due funzioni passano l'errore "mysql_fetch_assoc() expects parameter 1 to be resource boolean given". E' un comportamento che non avevo previsto dal basso della mia inesperienza.

    Volevo risolvere la questione con un blocco try-catch, di cui ci sono svariati esempi anche su php.net, ma ho trovato pochissime spiegazioni sul funzionamento e non riesco a modularlo a dovere.

    Le eccezioni possibili sono:
    1) connessione db fallita (QuoteAss)
    2) tabella records vuota (deve scrivere "Nessun record presente") (QuoteAss)
    3) tabella records vuota (deve scrivere "Totale 0") (TotaleQuoteAss)

    Le mia domande sono:

    1)si può fare con try-catch o è meglio giocarsela con dei semplici if?
    2)qual è l'ordine logico del codice? dagli esempi si capisce che il try è il codice da provare con le varie eccezioni da lanciare in caso di errore. Il catch va nella medesima funzione o nell'implementazione della pagina? Su questo più leggo esempi, più mi confondo le idee.


    Grazie mille!
    Ultima modifica di Korenaar; 05-05-2014 a 13:54

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Ho risolto differentemente ed in maniera molto più semplice per il momento, mi stavo spaccando la testa sul nulla come spesso accade.

    Ho usato mysql_num_rows, e un check se il numero righe è uguale a 0. Cosa che penso sicuramente poteva essere gestita tramite un try/catch, ma resto comunque nel dubbio di come effettivamente funzioni.

    Se qualcuno potesse spiegarlo gliene sarei molto grato, come ripeto, in ogni esempio il codice è riportato in maniera a mio parere fuorviante, persino sulla documentazione ufficiale.

  3. #3
    cosa non ti è chiaro della documentazione?
    Questa volta, più che un voto.. è favoreggiamento.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    208
    Nulla in realtà.

    Ho riletto tutta la questione a dovere, il blocco try/catch è implementazione e le exception si codificano nella funzione chiamata. Non so perchè, l'ho letta 50 volte quella pagina e non riuscivo a codificarla, oggi con un colpo d'occhio ho agganciato la questione

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.