TRY CATCH

13/07/2006 - 13:40 por Jordi Sanchez | Informe spam
Hola,

Cuando uso CATCH ex as exception...
- como puedo saber el numero de este error?? o un identificador?
ya se q puedo hacer AS SQLexception, FormatException

como antes tenia en VB6
''''''''''''''''''''''''''''''''''''''''''''
RutinaErrores:
N_ERROR = err.Number
DESC_ERR = err.Description

Gracias,

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
13/07/2006 - 14:22 | Informe spam
"Jordi Sanchez" wrote in message
news:
Cuando uso CATCH ex as exception...
- como puedo saber el numero de este error?? o un identificador?
ya se q puedo hacer AS SQLexception, FormatException

como antes tenia en VB6
''''''''''''''''''''''''''''''''''''''''''''
RutinaErrores:
N_ERROR = err.Number
DESC_ERR = err.Description



Puedes obtener un string que indique el tipo de la excepción por medio de
ex.GetType().FullName, que te devolverá un string diciendo si es un
SqlException, FormatException, etc. No están numeradas.
El equivalente del err.Description es ex.Message.
Respuesta Responder a este mensaje
#2 Robinson.Moscoso
13/07/2006 - 16:07 | Informe spam
puedes usuar tambien

dim elerror as string = ex.toString


y te imprime toda la informacion de la excepcion en al variable elerror

"Jordi Sanchez" wrote:

Hola,

Cuando uso CATCH ex as exception...
- como puedo saber el numero de este error?? o un identificador?
ya se q puedo hacer AS SQLexception, FormatException

como antes tenia en VB6
''''''''''''''''''''''''''''''''''''''''''''
RutinaErrores:
N_ERROR = err.Number
DESC_ERR = err.Description

Gracias,



Respuesta Responder a este mensaje
#3 SoftJaén
13/07/2006 - 16:10 | Informe spam
"Jordi Sanchez" escribió:

Cuando 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.
Respuesta Responder a este mensaje
#4 SoftJaén
13/07/2006 - 16:24 | Informe spam
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



Bueno, aunque creo que se sobrentiende, el objeto «ErrObject» pertenece al
espacio de nombres Microsoft.VisualBasic, y por tanto, dispone de las
clásicas propiedades «Number» y «Description».

El objeto .net apropiado que deberás de declarar, es el objeto «SqlError»
(obviamente, si trabajas con el proveedor .net de SQL Server), el cual sí
dispone de una propiedad «Number», pero no de una propiedad
«Description»; en su lugar, deberás de llamar a la propiedad «Message»:

Dim err As SqlError

For Each err In ex.Errors
MessageBox.Show("Número de error: " & err.Number & _
ControlChars.CrLf & _
"Descripción: " & err.Message)
Next

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.
Respuesta Responder a este mensaje
#5 Jordi Sanchez
17/07/2006 - 08:01 | Informe spam
Hola, muchas gracias por tu explicación

La verdad, hasta ahora no he empezado con el .net y todavía hay
conceptos como estos en los que siempre pienso en vb6.

un saludo,


"SoftJaén" escribió en el mensaje
news:
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



Bueno, aunque creo que se sobrentiende, el objeto «ErrObject» pertenece al
espacio de nombres Microsoft.VisualBasic, y por tanto, dispone de las
clásicas propiedades «Number» y «Description».

El objeto .net apropiado que deberás de declarar, es el objeto «SqlError»
(obviamente, si trabajas con el proveedor .net de SQL Server), el cual sí
dispone de una propiedad «Number», pero no de una propiedad
«Description»; en su lugar, deberás de llamar a la propiedad «Message»:

Dim err As SqlError

For Each err In ex.Errors
MessageBox.Show("Número de error: " & err.Number & _
ControlChars.CrLf & _
"Descripción: " & err.Message)
Next

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.




email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida