Error cuando se crea ejecutable

Iniciado por luis456, 12 Junio 2015, 09:26 AM

0 Miembros y 1 Visitante están viendo este tema.

luis456

Hola a todos tengo este error cuando genero un programa en exe y al ejecutarlo me sale la ventanita que me dice  " InvalidCastException " seguir o cancelar,  si sigo el programa se ejecuta normalmente, he compilado muchos exes y es la primera ves que me pasa ,

************** Texto de la excepción **************
System.InvalidCastException: La conversión de la cadena "" en el tipo 'Double' no es válida. ---> System.FormatException: La cadena de entrada no tiene el formato correcto.

************** Depuración JIT **************
Para habilitar la depuración Just In Time (JIT), el archivo de configuración de esta
aplicación o equipo (machine.config) debe tener el
valor jitDebugging establecido en la sección system.windows.forms.
La aplicación también se debe compilar con la depuración
habilitada

Por ejemplo:

<configuration>
   <system.windows.forms jitDebugging="true" />
</configuration>

Cuando esté habilitada la depuración JIT, cualquier excepción no controlada
se enviará al depurador JIT registrado en el equipo
en lugar de controlarlo mediante el cuadro de diálogo.

Luis



Que tu sabiduria no sea motivo de Humillacion para los demas

Eleкtro

#1
Lo que debes hacer para corregirlo es simplemente evitar castear un string VACÍO a esa variable Double, eso es lo que estás haciendo en alguna parte del código, así que comprueba los métodos que se llaman al iniciar tu app;
esto lo puedes controlar haciendo un chequeo al string con la función 'String.IsNullOrEmpty' o también 'String.IsNullOrWhiteSpace', o la función Enumerable.All o Enumerable.Any para evaluar una condición en los caracteres, o haciendo uso de la función 'Double.TryParse'.

Una combinación de todo:
Código (vbnet) [Seleccionar]

Dim num As Double
Dim str As String = ""

If String.IsNullOrEmpty(str) Then
   MessageBox.Show("La variable 'str' está vacía.")

ElseIf Not str.All(Function(c As Char) Char.IsNumber(c)) Then
   MessageBox.Show("La variable 'str' contiene caracteres no numéricos.")

ElseIf Not Double.TryParse(str, num) Then
   MessageBox.Show("La variable 'str' tiene un formato incorrecto.")

End If

MessageBox.Show("Nuevo valor: " & num)


Notas:
· La función 'Double.TryParse' intentará convertir la cadena de 'String' a tipo 'Double', devolviendo 'False' si la conversión ha fallado, o 'True' si la conversión ha tenido éxito.

· Si la conversión falla, el valor que se le asigna a la variable referenciada de tipo 'Double' será '0',
 si la conversión tiene éxito, obviamente el valor de la variable referenciada pasa a ser el valor que se ha convertido.

Saludos!








luis456

#2
Gracias elektro

Ya esta solucionado el error, lo tenia en el contador que habia puesto en configuracion y que en ves de integer habia puesto double  :silbar:


de nuevo gracias
Luis
Que tu sabiduria no sea motivo de Humillacion para los demas