|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2003
Città: TV
Messaggi: 10831
|
[java] Gestire l'errore try/catch per operazioni di jdbc
Ciao,
inizialmente uso try/catch... eseguo le operazioni all interno di try e quindi stampo su un label l'eventuale "difetto" generato dal catch... Purtroppo.. stampo sul campo di testo, un informazione che io setto precedentemente, quindi non ho nessuna chiarezza su quel che è esattamente l'errore. Vorrei quindi creare una textarea, dove scrivere via via una sorta di debug degli errori che si generano... Ma come faccio per esempio in questa occasione a scrivere l'esatto errore? Codice:
private void riempiTabella(){ try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); String connectionUrl = "jdbc:sqlserver://ced-sql:1433;" + "databaseName=magazzinoricambi;user=sa;password=xxxxxx;"; Connection con = DriverManager.getConnection(connectionUrl); st=con.createStatement(); r=st.executeQuery("SELECT * FROM dbo.tblMagazzinoRicambi"); int riga=0; while(r.next()) { for(int i=0; i<contaColonne(); i++) { jTable1.setValueAt(r.getString(i+1),riga,i); } riga++; } r.close(); }catch(Exception e) {jTextField2.setText("NO, QUALCOSA NON VA NEL RIEMPI TABELLA");}; }
__________________
cagnaluia MTB|DH|Running|Diving Eos1DX|16-35f4Lis|35f1.4L|100f2|300F4LIS |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Jul 2006
Messaggi: 12
|
Codice:
...}catch(Exception e) { jTextField2.setText(e.getMessage()); // Prende solo il messaggio di errore -> Nota che è meglio pigliare lo stack trace.. e.printStackTrace(); // Stampa su std output lo stack trace } |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
utilizzando "catch" multipli dovresti catturare il tipo specifico di ogni eccezione, non solo la generica class Exception; questo se vuoi gestire messaggi/flussi di esecuzione diversi in base al tipo specifico di eccezione.
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Jan 2008
Città: roma
Messaggi: 296
|
questo pezzo di codice gestisce tutte le possibili eccezioni a cui puoi andare incontro
![]() Codice:
Connection conn = null; try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance(); } catch (IllegalAccessException e) { //TODO } catch (InstantiationException e) { //TODO } catch (ClassNotFoundException e) { //TODO } Statement stmt = null; ResultSet rs = null; try{ conn = DriverManager.getConnection("jdbc:sqlserver://ced-sql:1433;" + "databaseName=magazzinoricambi;user=sa;password=xxxxxx;"); stmt=conn.createStatement(); rs=stmt.executeQuery("SELECT * FROM dbo.tblMagazzinoRicambi"); int riga=0; while(rs.next()){ //TODO } } catch (SQLException e) { // TODO } Ultima modifica di vladix : 22-02-2008 alle 23:19. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:35.