Foros del Web » Programación para mayores de 30 ;) » .NET »

Tratamiento de exception VB.NET

Estas en el tema de Tratamiento de exception VB.NET en el foro de .NET en Foros del Web. Hola, tengo el siguiente código: Código: Try iNumPW = CInt(Math.Floor(CDbl((Ancho -(SepLateral * 2)) / pAncho))) Catch ex As DivideByZeroException MsgBox(MsgDivZero, MsgBoxStyle.OKOnly, MsgAtencion) Catch ex As ...
  #1 (permalink)  
Antiguo 18/09/2003, 08:55
 
Fecha de Ingreso: enero-2002
Mensajes: 153
Antigüedad: 22 años, 3 meses
Puntos: 0
Tratamiento de exception VB.NET

Hola,
tengo el siguiente código:


Código:
Try
         iNumPW = CInt(Math.Floor(CDbl((Ancho -(SepLateral * 2)) / pAncho)))
Catch ex As DivideByZeroException
        MsgBox(MsgDivZero, MsgBoxStyle.OKOnly, MsgAtencion)
Catch ex As OverflowException
        MsgBox(MsgDesborda, MsgBoxStyle.OKOnly, MsgAtencion)
End Try
donde Ancho, SepLateral y pAncho son integer.
Supongamos el siguiente caso:
- Ancho=10
- SepLateral=1
- pAncho=0

Por tanto hay una división por cero.

Mi duda es:
¿Porque salta OverFlowException, en lugar de DivideByZeroException?
  #2 (permalink)  
Antiguo 18/09/2003, 09:42
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Hola.. lo que pasa es que te está marcando un error de desbordamiento.. es decir... estas usando una funcion que recibe un doble y regresa un doble....

en tu caso... estás usando Math.Floor que recibe un doble... que en tu operacion es correcta.. pero le estás diciendo que te lo convierta despues a Entero.. cosa que no es correcta y marca un OverFlow.

Mas bien tu opearacion sería:

iNumPW = CDbl(Math.Floor(CDbl((Ancho - (SepLateral * 2)) / pAncho)))

Saludos y suerte...
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 19/09/2003, 00:36
 
Fecha de Ingreso: enero-2002
Mensajes: 153
Antigüedad: 22 años, 3 meses
Puntos: 0
Gracias por la aclaración. Estoy empezando y seguro que me verás a menudo por aquí.
Gracias de nuevo
  #4 (permalink)  
Antiguo 19/09/2003, 14:00
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
ok.. no hay problema... para eso estamos...

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:05.