Post by Jordi SanchezCuando uso CATCH ex as exception...
- como puedo saber el numero de este error?? o un identificador?
ya se q puedo hacer AS SQLexception, FormatException....
Hola, Jordi:
Si lo deseas, puedes continuar utilizando en tus proyectos de Visual Basic
.net, el objeto «Err» de Visual Basic clásico, pero te aconsejaría que en
tus nuevas aplicaciones .net, dejaras a un lado el respetado objeto «Err», y
te acostumbraras al control estructurado de excepciones.
Digamos que en .net «no existen los errores», al menos, tal y como se
conciben en Visual Basic clásico, donde activando una rutina de control de
errores, podíamos obtener la descripción y el número de error, y éste
último, dependiendo del componente COM utilizado, lo podíamos obtener como
un valor entero largo HRESULT, o como cualquier valor que le pareciera al
creador del componente. En .net es distinto. Aquí lo que se interceptan son
excepciones producidas, que si bien se asemejan a los errores en cuanto a
que nos indican que algo no funciona del todo bien, aquéllas no nos
devuelven un valor cero, entero o negativo, sino que nos proporciona un
objeto Exception apropiado al tipo de excepción producida, y esto entiendo
que se hizo así para unificar los criterios de devolución de errores,
permitiendo la comunicación, o interoperabilidad, entre todos los lenguajes
.net existentes.
Dependiendo de las operaciones que estés ejecutando, puedes declarar bloques
«Catch» que intercepten una excepción concreta. Por ejemplo, si trabajas con
el proveedor de datos .net para SQL Server, puedes definir un bloque «Catch»
de la clase «SqlExcetion», la cual dispone de una propiedad llamada «Errors»
que contiene una colección de uno o varios objetos «SqlError». Este último
objeto es el que dispone de una propiedad llamada «Number», que como su
nombre indica, nos devuelve un número que identifica el tipo de error
producido:
Try
' Instrucciones a ejecutar
Catch ex As SqlException
' Excepciones producidas por el proveedor SqlClient
'
Dim err As ErrObject
' Recorremos la colección Errors
For Each err In ex.Errors
MessageBox.Show("Número de error: " & err.Number & _
ControlChars.CrLf & _
"Descripción: " & err.Description)
Next
Catch ex As Excepcion
' Otro tipo de excepciones generales
Finally
End Try
En fin, espero que la explicación haya servido, para que en tu código fuente
utilices el control estructurado de excepciones.
Un saludo
--
Enrique Martínez
[MS MVP - VB]
Nota informativa: La información contenida en este mensaje, así como el
código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin
garantías de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.