Negli ultimi giorni di selezione, alcuni utenti hanno riscontrato un errore riconosciuto nell’elenco dei codici di errore java.sql.sqlexception. Questa battuta d’arresto può verificarsi per diversi motivi. Diamo un’occhiata adesso.
Approvato: Fortect
- Presentazione di SQLException
- Ottieni retrocessioni
- Ricevi avvisi.
- Eccezioni categorizzate SQL
- Altre sottoclassi SQLException
Presentazione di SQLException
Se JDBC incontra un errore durante l’interazione con l’origine dati, genera sicuramente un’ SQLException
come ad esempio, non un’eccezione
. (Il prestatore di dati in questo contesto è il database a cui è connesso l’elemento Connection
.) SQLException
L’istanza di solito contiene le seguenti risposte, che possono aiutarti a determinare la causa del errore:
-
Descrizione dell’errore. Ottieni un oggetto
String
contenente questa classificazione chiamando lo strumentoSQLException.getMessage
. -
codice SQLState. Questi codici e i relativi aggiornamenti sono stati standardizzati da ISO / ANSI più Open Group (X / Open), sebbene siano state lasciate agli autori del database un paio di restrizioni per definirsi definitivamente. Questo oggetto
String
è composto da cinque caratteri alfanumerici. Ottieni questa modalità chiamando la modalitàSQLException.getSQLState
. -
Errore di leggi. Questo è un errore fantastico che identifica un valore intero che ha causato la raccolta dell’istanza principale
SQLException
. È ciò che suggerisce e il significato rimane specifico dell’implementazione e può sempre essere un codice di errore valido restituito dal trader principale. Ottieni l’errore chiamando lo stesso schemaSQLException.getErrorCode
. -
Motivo. Un’istanza
sqlexception
può avere una relazione causale regolarmente costituita da essa o da più elementiThrowable
che hanno portato alla creazione del nostro eventosqlexception
. Giovedì Per combinare questi motivi, chiamaci il mio metodoSQLException.getCause
in modo ricorsivo finché non viene trovata la corrispondenza pernull
. -
Collegamento a eccezioni composte. Se si verifica più di un errore particolare, in realtà sono le eccezioni a cui si riferisce questa riga. Ottiene le eccezioni generate semplicemente dal metodo
SQLException.getNextException
generato.
Recupero delle eccezioni
Il metodo successivo JDBTCutorialUtilities, .printSQLException
restituisce SQLState, codice di errore, descrizione dell’errore e motivo (se presente) per cui il la maggior parte di è contenuta in sqlexception
sono protetti in As e qualsiasi altra eccezione può essere concatenata in:
Ad esempio, se chiami il corso esatto CoffeesTable.dropTable
con Java DB nella forma del tuo DBMS, la tabella COFFEES
non esiste, oltre a rimuovere un nuovo JDBTCutorialUtilities.ignoreSQLException
l’output si svilupperà in qualcosa del genere:
Invece di una copia cartacea delle informazioni SQLException
, puoi prima utilizzare SQLState
e quindi gestire alcune di tutte le SQLException
secondo necessità. Ad esempio, attualmente le strategie JDBTCutorialUtilities.ignoreSQLException
in take back true
se SQLState
è una bella versione paragonabile a 42Y55
(e devi usare Java DB come DBMS), che sfortunatamente consente a JDBTCutorialUtilities.printSQLException
ignorare SQLException
:
Ricevi avvisi
Gli oggetti
SQLWarning
sono quella sottoclasse di SQLException
che controlla l’accesso al ritorno agli avvisi del database. Gli avvertimenti non bloccano l’esecuzione della responsabilità, a differenza delle eccezioni; semplicemente avvertendo l’utente che sembra che qualcosa non sia pianificato. Ad esempio, un segnale potrebbe indicare che sai che l’autorizzazione utilizzata per la revoca dalla tua azienda non è stata revocata.
A può essere passato attraverso un oggetto Connection
, un oggetto Statement
(inclusi PreparedStatement
e CallableStatement
) cresce essere oggetti) o un oggetto ResultSet
. Ciascuno insieme a queste classi ha un progetto getWarnings
che gli acquirenti devono chiamare per visualizzare un avviso iniziale sull’idea di chiamata. Se getWarnings
restituisce un avviso, puoi SQLWarning
chiamare il metodo getNextWarning
per aiutarti a risolvere il problema in modo da ricevere altri tipi di avvisi. L’esecuzione di un’istruzione funzionale rimuove automaticamente le notifiche dall’istruzione funzionale precedente, quindi è probabile che non vengano visualizzate. Tuttavia, ciò significa che qualcuno deve essere avvertito di un’incredibile manutenzione prima che i clienti possano eseguire un’altra richiesta.
I seguenti metodi in JDBTCutorialUtilities
mostrano come popolare i fatti di avviso e le strategie riportate per l’istruzione
Oggetti ResultSet
:
L’avviso più comune è una sorta di avviso completo DataTruncation
, una sottoclasse collegata a SQLWarning
. Tutti i bit e le parti di DataTruncation
hanno SQLState 01004
, a indicare che generalmente si trattava di un problema nell’ascolto o nella scrittura dei dati. Con i metodi DataTruncation
, la maggior parte delle persone in molti casi può sapere in quale ordine o in quale negozio i dati del parametro sono stati troncati, se il troncamento corrente è stato rappresentato da una funzione di lettura o scrittura, quale metodo dovrebbe essere utilizzato direttamente per trasferire molti byte e quanti byte sono stati effettivamente trasferiti.
Eccezioni SQL categorizzate
Il tuo driver JDBC potrebbe generare una sottoclasse SQLException
che gli esperti dichiarano corrisponde a un normale SQLState o in generale lo stato di errore che gli esperti credere non è identico a un valore di classe specifico di SQLState. Ciò consente a causa del codice di gestione degli errori più portatile. Queste eccezioni sono solitamente sottoclassi di uno dei corsi futuri:
-
SQLNonTransientException
-
SQLTransientException
-
SQLRecoverableException
Approvato: Fortect
Fortect è lo strumento di riparazione PC più popolare ed efficace al mondo. Milioni di persone si affidano a milioni di persone per mantenere i loro sistemi in esecuzione veloci, fluidi e privi di errori. Grazie alla sua semplice interfaccia utente e al potente motore di scansione, Fortect trova e risolve rapidamente un'ampia gamma di problemi di Windows, dall'instabilità del sistema e problemi di sicurezza alla gestione della memoria e ai colli di bottiglia delle prestazioni.
Per molte più informazioni su queste sottoclassi, vedere l’ultimo Javadoc nel file java.sql
o la documentazione esatta del proprietario JDBC.
Altre sottoclassi SQLException
-
BatchUpdateException
viene quasi certamente generato se si verifica un errore fatale durante un aggiornamento batch significativo. Oltre alle informazioni fornite dal processoSQLException
,BatchUpdateException
fornisce numeri di aggiornamento se vengono prese in considerazione istruzioni che potrebbero essere state eseguite prima dell’errore di una persona. -
SQLClientInfoException
deve essere generato quando non è possibile impostare uno o più accomodamenti di informazioni client in modo specifico per la connessione. Oltre alle informazioni fornite daSQLException
,SQLClientInfoException
contiene un elenco di proprietà delle informazioni sui client connesse che purtroppo non sono state definite.
Accelera ora le prestazioni del tuo computer con questo semplice download.