Mysql
 sql >> Database >  >> RDS >> Mysql

Qual è il vantaggio dell'utilizzo di try {} catch {} rispetto a if {} else {}

Userei il blocco try/catch quando il normale percorso del codice dovrebbe procedere senza errori a meno che non ci siano condizioni davvero eccezionali, come il server inattivo, le credenziali scadute o errate. Non lo userei necessariamente per gestire errori non eccezionali, ad esempio come se l'utente corrente non fosse nel ruolo corretto. Cioè, quando puoi ragionevolmente aspettarti e gestire un errore che non è una condizione eccezionale, penso che dovresti fare i tuoi controlli.

Nel caso che hai descritto, la configurazione e l'esecuzione di una query, un blocco try/catch è un modo eccellente per gestirlo come normalmente ti aspetti che la query abbia esito positivo. D'altra parte, probabilmente vorrai verificare che il contenuto del risultato sia quello che ti aspetti dalla logica del flusso di controllo piuttosto che tentare semplicemente di utilizzare dati che potrebbero non essere validi per il tuo scopo.

Una cosa a cui dovresti prestare attenzione è l'uso sciatto di try/catch. Try/catch non dovrebbe essere usato per proteggersi da una cattiva programmazione -- il tipo "Non so cosa accadrà se lo faccio, quindi lo avvolgerò in un try/catch e spero per il meglio" di programmazione. In genere vorrai limitare i tipi di eccezioni che catturi a quelle che non sono correlate al codice stesso (server inattivo, credenziali errate, ecc.) In modo da poter trovare e correggere gli errori relativi al codice (puntatori nulli, ecc. .).