 VB.NET 
- Tratando exceções de banco de dados com Try/Catch
VB.NET 
- Tratando exceções de banco de dados com Try/Catch
As aplicações que utilizam banco de dados tem que dar uma atenção especial ao tratamento de exceções , primeiro pela própria natureza da operação e de sua importância segundo por que ainda hoje , apesar de todos os esforços dos fabricantes , a interação com banco de dados esta sujeita a falhas.
Quando você utiliza o.NET Framework com banco de dados tem a disposição classes que representam exceções que podem ser disparadas quando um programa tenta se comunicar com um banco de dados. Geralmente as falhas ocorrem e são detalhadas quando da utilização dos comandos SELECT, INSERT , UPDATE e DELETE.
As duas classes principais são : OleDbException e SqlException que pertencem aos namespaces SqlDb e OleDb. Para obter realizar o tratamento das exceções geradas e obter seus detalhes utilizamos o bloco Try/Catch
Para saber mais sobre tratamento de erros leia o artigo : VB .NET - tratamento de erros usando o bloco try-catch-finally.
Estas classes retornam uma coleção de erros , e, com isto em mente , você pode expor todos os erros retornados em OleDbException e SqlException percorrendo a coleção de erros.
Neste artigo irei tratar somente da classe OleDbException.
- A classe OleDbException dispara uma 
exceção relacionada com o provedor OleDb. (Esta classe não pode ser herdada.).
- A classe é criada sempre que um provedor Ole DB .NET encontra um erro gerado a 
partir do servidor (os erros do lado do cliente são disparados como exceções 
padrão URT). 
- A classe sempre contém no mínimo uma instância de OleDBError
- Se a gravidade do erro for muito severa o servidor pode fechar a conexão 
OleDbConnection.
Seus principais membros são :
Propriedades públicas
| ErrorCode | Overridden. Obtém o HRESULT do erro | 
| Errors | Obtém a coleção de um ou mais objetos OleDbError que dão informações detalhadas sobre as exceções geradas pelo provedor. | 
| HelpLink (herdada de Exception) | Obtém ou define um link para o arquivo de ajuda associado com a exceção. | 
| InnerException (herdada de Exception) | Obtém a instância da exceção que causou a exceção atual. | 
| Message | Overridden. Obtém o texto descrevendo o erro. | 
| Source | Overridden. Obtém o nome do provedor OLE DB que gerou o erro. | 
| StackTrace (herdada de Exception) | Obtém uma string representando da chamada da pilha da exeção disparada. | 
| TargetSite (herdada de Exception) | Obtém o método que disparou a exceção atual. | 
Nota: O método ToString cria e retorna uma representação string da exceção atual
Vejamos o código de exemplo abaixo:
| Imports System.Data.OleDb Module Module1 Sub Main() ' Cria uma string com instrução SQL Dim aQuery As String = "SELECT Nome FROM Clientes" ' Estou instanciando uma conexão OleDbConnection INVÁLIDA (adivinha porque ?) ' e atribuindo-a a uma variável aConexao         Dim aConexao As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource=")
Dim aComando As New OleDbCommand(aQuery, aConexao) 'inicio tratamento de exceções usando try/Catch Try ' Como temos uma OleDbConnection Inválida ' uma exceção será disparada aComando.Connection.Open() Catch ex As OleDbException ' Exibe a mensagem genérica para a exceção Console.WriteLine(ex.ToString) Console.WriteLine() ' Percorre a coleção de erros em OleDbException ' retornado pelo banco de dados Dim i As Integer For i = 0 To ex.Errors.Count - 1 ' Exibe detalhes sobre os erros                 Console.WriteLine("Message: " & ex.Errors(i).Message)                Console.WriteLine("NativeError: " & ex.Errors(i).NativeError)                Console.WriteLine("Source: " + ex.Errors(i).Source)                Console.WriteLine("SQLState: " + ex.Errors(i).SQLState)Next i Console.ReadLine() End Try End Sub End Module 
 | 
Ao executar o código acima iremos obter o seguinte resultado :
|  | 
Até o próximo artigo VB.NET
| Veja os 
    Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique 
	e confira ! Quer migrar para o VB .NET ? 
 Quer aprender C# ?? 
 Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? | 
  Gostou ?   Compartilhe no Facebook
Compartilhe no Facebook
  
 Compartilhe no Twitter
 
Compartilhe no Twitter 
Referências: