Durante los últimos días, algunos usuarios han encontrado el error conocido correcto en el almacén de códigos de error java.sql.sqlexception. Este problema puede surgir por varias razones. Veámoslos ahora.
Aprobado: Fortect
- Presentamos SQLException
- Obtenga excepciones
- Reciba alertas.
- Excepciones categorizadas de SQL
- Otras subclases de SQLException
Presentamos SQLException
Si JDBC ocurre un error al interactuar con los datos originales, arrojará una SQLException
mientras que es un ejemplo, no una excepción
. (La fuente de estadísticas en este contexto es el repositorio al que se ha conectado el elemento Connection
.) SQLException
La instancia generalmente contiene cómo la siguiente información, que puede ayudarlo a determinar todos la causa del error:
-
Descripción del error particular. Obtenga un objeto
String
que esta descripción llamando a la herramientaSQLException.getMessage
. -
Código SQLState. Estos códigos y o quizás los significados correspondientes han sido estandarizados por ISO – ANSI y el Open Group (X / Open), aunque se han dejado algunas restricciones a todos los editores de bases de datos para que se definan definitivamente. Este objeto
String
consta de cinco arquetipos alfanuméricos. Obtenga este modo llamando al métodoSQLException.getSQLState
. -
Error de leyes. Esto sería un error al identificar un valor entero que resultó en el almacenamiento de la instancia
SQLException
. Su significado y significado sigue siendo específico de la implementación y, además, puede ser un código de error válido devuelto básicamente por el operador subyacente. Obtenga el error por bbb el esquemaSQLException.getErrorCode
. -
Razón. Una instancia de
sqlexception
puede tener una nueva relación causal que consiste en ella o más objetosThrowable
que resulten en que tengamos posesión de la instancia desqlexception
que se está creando. Jueves Para combinar sus razones, llame a mis métodosSQLException.getCause
de forma recursiva hasta que se encuentre una coincidencia parazero
. -
Enlace a excepciones compuestas. Si se produce más de un error, en realidad son las excepciones a las que se refiere esta línea. Obtiene omisiones generadas por la conversión del método
SQLException.getNextException
.
Recuperando excepciones
El siguiente método JDBTCutorialUtilities, .printSQLException
divide SQLState, código de error, descripción del error y provoca (si existe) que está contenido en sqlexception
generalmente contenido en As, y cualquier otra omisión se concatena en:
Por ejemplo, si llama al curso CoffeesTable.dropTable
con Java DB como su DBMS, la tabla COFFEES
no existe, además de descartar la < code> JDBTCutorialUtilities.ignoreSQLException el uso será algo como esto:
En lugar de estar vinculado con la impresión de información de SQLException
, primero y más importante puede obtener SQLState
y luego manejar otros de SQLException
según sea necesario. Por ejemplo, las estrategias JDBTCutorialUtilities.ignoreSQLException
dentro de return true
si SQLState
es una versión comparable a 42Y55
(y usted están usando Java DB como su buen DBMS), lo que permite JDBTCutorialUtilities.printSQLException
olvidar SQLException
:
Recibir advertencias
Los objetos
SQLWarning
se pueden encontrar en una subclase de SQLException
que los botones acceden a las advertencias de la base de datos. Las advertencias no eliminan la ejecución de la tarea, a diferencia de las excepciones; simplemente advirtiendo al usuario que algo no está planeado. Por ejemplo, una alerta podría decir que usted sabe a menudo que el permiso que utilizó para revocar no ha sido revocado en algún momento.
A se puede pasar a través de un objeto Connection
real, una cosa Statement
(incluyendo PreparedStatement
y CallableStatement
) se convierte en objetos) o un objetivo ResultSet
. Cada una de estas clases tiene un método getWarnings
que los compradores deben llamar para conocer una advertencia inicial sobre la idea de la llamada. Si getWarnings
devuelve una advertencia, tiene la capacidad de SQLWarning
llamar al esquema getNextWarning
para resolver el problema y poder recibir advertencias adicionales. La ejecución de una instrucción funcional elimina definitivamente las advertencias de la instrucción funcional anterior, por lo que no aparecen. Sin embargo, esto generalmente significa que debe ser advertido sobre un nuevo reclamo increíble antes de que los clientes puedan ejecutar otra demanda.
Los siguientes recursos en JDBTCutorialUtilities
muestran cómo completar la información de advertencia reportada para Statement
Objetos ResultSet
:
La advertencia más común es la advertencia completa de DataTruncation
, por subclase de SQLWarning
. Todos los objetos DataTruncation
tienen SQLState 01004
, lo que recomienda que hubo un problema al escuchar o componer datos. Con los métodos DataTruncation
, mucha gente puede saber en qué orden o en qué orden se truncaron los datos de los parámetros, asumiendo que el truncamiento fue representado por una operación de lectura también conocida como escritura, qué método debería ser más utilizado para transferir muchos bytes, y cómo se transfirieron realmente un número de bytes.
Excepciones de SQL categorizadas
Su controlador JDBC puede generar una subclase SQLException
que corresponde a un estado de error general o SQLState normal que los expertos creen que definitivamente no es relacionado con un valor de clase específico de SQLState. Esto permite un código de manejo de errores más portátil. Estas excepciones suelen ser subclases de una de esas clases futuras:
-
SQLNonTransientException
-
SQLTransientException
-
SQLRecoverableException
Aprobado: Fortect
Fortect es la herramienta de reparación de PC más popular y eficaz del mundo. Millones de personas confían en él para mantener sus sistemas funcionando de forma rápida, fluida y sin errores. Con su sencilla interfaz de usuario y su potente motor de análisis, Fortect encuentra y soluciona rápidamente una amplia variedad de problemas de Windows, desde la inestabilidad del sistema y los problemas de seguridad hasta la gestión de la memoria y los cuellos de botella en el rendimiento.
Para obtener más información sobre estas subclases, consulte cada uno de nuestros últimos Javadoc en el archivo de música java.sql
o en la documentación del propietario de JDBC.
Otras subclases de SQLException
-
BatchUpdateException
se lanza si un error fatal asoma su fea cabeza durante una actualización por lotes. Además de parte de la información proporcionada por el curso de acciónSQLException
,BatchUpdateException
proporciona números de actualización si se tienen en cuenta varias declaraciones que se ejecutaron antes de un error en particular. -
SQLClientInfoException
se lanza cuando una o más propiedades de información de software no se pueden configurar específicamente para la conexión. Además de la información proporcionada porSQLException
,SQLClientInfoException
contiene por lista de propiedades de información del cliente que tienen opciones no definidas.