Nos últimos dias, alguns surfistas encontraram um erro conhecido em uma lista de códigos de erro java.sql.sqlexception. Esse problema pode surgir para trabalhar com vários motivos. Vamos dar uma olhada neles agora.
Aprovado: Fortect
- Apresentando SQLException
- Obtenha exceções
- Receba avisos terríveis.
- Exceções categorizadas de SQL
- Outras subclasses de SQLException
Apresentando SQLException
Se o JDBC encontrar um erro ao interagir por meio da fonte de dados, ele lançará uma SQLException
definitiva como exemplo, não uma exceção
principal. (A fonte de dados nesta estrutura é o banco de dados ao qual o elemento Connection
está conectado.) SQLException
O momento geralmente contém as seguintes informações, que podem servir para determinar a causa de o erro:
-
Descrição do erro. Obtenha um objeto
String
contendo esta descrição chamando uma nova ferramentaSQLException.getMessage
. -
Código SQLState. Esses códigos e seus significados correspondentes têm sido regulares pela ISO / ANSI e pelo Open Group (X / Open), embora algumas restrições tenham sido deixadas recentemente para os editores de banco de dados definirem suas empresas definitivamente. Este objeto
String
consiste em cinco caracteres alfanuméricos. Obtenha este modo obtendo o métodoSQLException.getSQLState
. -
Erro em relação às leis. Este é um erro que identifica o valor inteiro real que causou a coleta da situação
SQLException
. Seu significado e significado permanecerão específicos da implementação e podem ser um código de erro real retornado pelo negociador subjacente. Obtenha esses erros chamando o esquemaSQLException.getErrorCode
. -
Razão. Uma instância
sqlexception
tem uma relação causal que consiste nela e também em mais objetosThrowable
que resultaram no aparecimento de nossa própria instânciasqlexception
sendo projetada. Quinta-feiraPara combinar esses motivos, chame meu métodoSQLException.getCause
recursivamente até que uma correspondência seja reconhecida paranull
. -
Link para exceções compostas deslizantes. Se ocorrer mais de um erro, as empresas são, na verdade, as exceções para as quais essa linha muda. Obtém exceções lançadas pelo método
SQLException.getNextException
lançado.
Recuperando exceções
O seguinte método JDBTCutorialUtilities, .printSQLException
retorna SQLState, código de erro, caracterização de erro e razão (se houver) que é contidos quando se trata de sqlexception
estão contidos em As, assim como quaisquer outras exceções são concatenadas em:
Por exemplo, se você chamar o curso CoffeesTable.dropTable
com Java DB como seu DBMS, atualmente a tabela COFFEES
não existe, além de remover o JDBTCutorialUtilities.ignoreSQLException
Em vez de imprimir pontos de SQLException
, você pode primeiro obter SQLState
e, em seguida, manipular alguns dos SQLException
conforme necessário. Por exemplo, as estratégias JDBTCutorialUtilities.ignoreSQLException
em retorno true
, desde que SQLState
seja uma versão comparável a 42Y55
(e você está usando Java DB como seu DBMS), o que permite que JDBTCutorialUtilities.printSQLException
ignore SQLException
:
Receber avisos
Os objetos
SQLWarning
são uma subclasse de SQLException
que controla o acesso aos avisos do banco de dados. Os avisos não interrompem a execução da tarefa, exceções de pressão; simplesmente avisando ao usuário que algo não está mais planejado. Por exemplo, um alerta pode dizer que infelizmente você sabe que a permissão usada para revogar não foi revogada.
A pode ser transferido por meio de um objeto Connection
, o objeto Statement
(incluindo PreparedStatement
, bem como CallableStatement
) tornam-se objetos) ou o objeto ResultSet
específico. Cada uma dessas classes tem um método getWarnings
que os compradores devem chamar para ver um aviso inicial sobre a própria ideia de chamada. Se getWarnings
retornar um aviso importante, você pode SQLWarning
chamar o método getNextWarning
para resolver o fornecimento de forma que você receba avisos adicionais. Executar sua própria instrução funcional remove automaticamente os avisos da instrução ex funcional para que eles não apareçam. No entanto, isso significa que você precisa ser avisado sobre uma reivindicação incrível antes que os clientes possam executá-la.
Os seguintes métodos em JDBTCutorialUtilities
atualizam como preencher as informações de aviso relatadas para atingir a Instrução
Objetos ResultSet
:
O aviso mais comum é o aviso DataTruncation
completo, uma subclasse de SQLWarning
. Todos os objetos DataTruncation
têm SQLState 01004
, indicando que houve um problema de escuta ou gravação de dados. Com os métodos DataTruncation
, a maioria das pessoas pode saber na ordem da linguagem ou em que ordem os registros de parâmetro foram truncados, se o truncamento foi representado meramente como uma operação de leitura ou gravação, qual método deveria ser usado para transferir a maioria dos bytes e quantos bytes foram realmente transferidos.
Exceções SQL categorizadas
Seu driver JDBC pode produzir uma subclasse SQLException
que corresponde a um SQLState normal ou estado de erro geral que os especialistas acreditam não está relacionado a um valor de classe específico de SQLState. Isso permite um código de tratamento de erros mais compacto. Essas exceções são geralmente subclasses relacionadas a uma das classes futuras:
-
SQLNonTransientException
-
SQLTransientException
-
SQLRecoverableException
Aprovado: Fortect
Fortect é a ferramenta de reparo de PC mais popular e eficaz do mundo. Milhões de pessoas confiam nele para manter seus sistemas funcionando de forma rápida, suave e livre de erros. Com sua interface de usuário simples e mecanismo de verificação poderoso, o Fortect localiza e corrige rapidamente uma ampla gama de problemas do Windows, desde instabilidade do sistema e problemas de segurança até gerenciamento de memória e gargalos de desempenho.
Para obter mais informações sobre a maioria dessas subclasses, consulte o Javadoc mais recente em um novo arquivo java.sql
ou a papelada do proprietário JDBC.
Outras subclasses de SQLException
-
BatchUpdateException
é lançada se o erro fatal perfeito ocorrer durante uma atualização em lote. Além das informações fornecidas pelo próprio processoSQLException
,BatchUpdateException
fornece números de alteração se quaisquer instruções executadas após o erro de uma pessoa forem incluídas no portfólio. -
SQLClientInfoException
é lançada quando uma ou mais propriedades de informações do cliente não podem parecer definidas especificamente para a conexão. Além de algum tipo de informação fornecida porSQLException
,SQLClientInfoException
contém uma lista de condomínios de informações de clientes que infelizmente não foram definidos.