Ciao volevo sapere se è obbligatorio usare sempre try per connettersi al db o posso eseguire query direttamente senza stare a diventare matto
Ciao volevo sapere se è obbligatorio usare sempre try per connettersi al db o posso eseguire query direttamente senza stare a diventare matto
e' cosa buona e giusta usare try, in particolar modo per connettersi a un db, visto che le exception tendono a fioccare, nelle connessioni...Originariamente inviato da olivs
Ciao volevo sapere se è obbligatorio usare sempre try per connettersi al db o posso eseguire query direttamente senza stare a diventare matto
Dalle prove che ho fatto devi SEMPRE mettere la connessione a database all'interno di un blocco try - catch.
diciamo che come regola generale, dentro al try ci va messo qualsiasi cosa possa lanciare un'Exception. che sia una connection o un Integer.parseInt() poco importa, se non lo fai rischi che ti si pianti l'applicazione
ok ma scusate la mia ignoranza in materia ma mi sto avvicinando piano piano a java da php. se voglio fare piu query devo fare ogni volta un try o mi basta per la prima? e poi le altre le posso lasciare fuori?
Ogni volta che richiami u metodo che può sollevare un'eccezione la devi racchiudere in un blocco try/catch (se un metodo può sollevare un'eccezione significa che qualcosa può andare storto, non avrebbe senso lasciare incustodito del codice pericoloso).
Quello che puoi fare, però, è racchiudere tutte le chiamate a tali metodi all'interno di un unico grande blocco try/catch:
Ciao.codice:try { // connessione al db ... // prima query ... // seconda query ... // e via dicendo }
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
il try serve a "provare a fare" qualcosa che potrebbe fallire per i piu' svariati motivi, come ad esempio le connessioni. in caso di errore una connessione lancia un messaggio di errore comunemente chiamato exception che puo' venir gestito dal codice proprio grazie al costrutti try{}catch(){}Originariamente inviato da olivs
ok ma scusate la mia ignoranza in materia ma mi sto avvicinando piano piano a java da php. se voglio fare piu query devo fare ogni volta un try o mi basta per la prima? e poi le altre le posso lasciare fuori?
esempio
try{
connessione
}catch(Exception e){
metti nel log o altrove il messaggio di errore, fai cose particolari etc etc
}
questo ogni volta che usi una connessione
In alternativa al codice di LeleFt puoi inserire ogni connessione a db in un diverso blocco try-catch.
Questo metodo ti permette, ad esempio, di gestire diversamente l'eccezione a seconda della connessione che l'ha lanciata.
Esempio:
CIAOcodice:try { // connessione al db }catch(Exception e){ // gestione eccezzione di connessione } try { // prima query }catch(Exception e){ // gestione eccezione prima query } // e via dicendo }
ok, ma il try-catch non e' il solo modo per gestire le eccezioni:
e' ammissibile anche throws-throw (esempio:
public void insert(Object x)throws NullpointerException poi dentro il metodo... if (x==null) throw NullPointerException("eccezione catturata"); ovviamente il try-catch ti permette di gestire effettivamene le eccezzione ed, a volte, per non averlo utilizzato viene prodotto un errore in compilazione . come nel caso di connessioni, apertura file, etc...
Mick: Be Simply Natural
Il Try/Catch e' obbligatorio per tutte le exception che estendono Exception , mentre per le exception che estendono RuntimeException non e' necessario , ma e' buona norma farlo.
Come gia' detto esistono sia il try/catch che il throws/throw
, quest'ultimo non fa altro che rimandare l'exception al chiamante del metodo.
L'uso dell'uno o dell'altro dipende dalla struttura del programma A volte e' necessario gestire direttamente l'exception altre no.
L'SQLException estende Exception e deve essere obbligatoriamente catturata con uno dei due metodi
Ciauz
Lang=Java
Ambiente = Eclipse forever
Ubuntu & Win XP Pro