Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Try Catch

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Try Catch Responder citando

Holas..
He estado tratando de utilizar la función Try Catch.. pero no resulta me sigue tirando el error de programa.. y el programa se detiene. El error ocurre cuando dejo los Tedit vacíos.. supongo que es por que la cadena está vacía y no puede transformar nada.

Me arroja la excepción.. EConverError

void __fastcall TForm1::Button1Click(TObject *Sender)
{
if ( (Edit1->Text!=" ") && (Edit2->Text!=" ") && (Edit3->Text!=" ") && (Edit4->Text!=" ") && (Edit5->Text!=" ") && (Edit6->Text!=" ") && (Edit7->Text!=" ") && (Edit8->Text!=" ") )
{
mensaje->Caption = " ";
//Declaración de constantes
B = 13.000;
D = 4;

try
{
//traspaso de las medidas a varieables
a1 = Edit1->Text.ToDouble();
b1 = Edit2->Text.ToDouble();
x1 = Edit3->Text.ToDouble();
y1 = Edit4->Text.ToDouble();
Tp = Edit5->Text.ToDouble();
Ts = Edit6->Text.ToDouble();
F = Edit7->Text.ToDouble();
Isec = Edit8->Text.ToDouble();
}
catch (EConvertError&)
{
};
//Inicio de los cálculos
Sfe = a1*b1;
Sv = x1*y1;
Np = (Tp*pow10(Cool)/(4.44*F*B*Sfe);
Ns = (Np*Ts)/(Tp);
P = (pow(Sfe,2))/1.41;
Ps = Ts*Isec;
Pp = Ps;
Ip = Pp/Tp;
Isec = Ps/Ts;
Sp = Ip/D;
Ss = Isec/D;
Dp = sqrt(Sp/0.785);
Ds = sqrt(Ss/0.785);
SHp = pow(Dp,2);
SHs = pow(Ds,2);
STHp = Np*SHp;
STHs = Ns*SHs;
STHps = STHp+STHs;
}
else {mensaje->Caption = "Las celdas estan vacías";};

// mensaje de termino de calculos
mensaje->Caption = "Cálculos Finalizados";
ComboBox1->Enabled = true;
ComboBox1->Text = "(elija medida para mostrar)";
}

Alguien sabe como lo podría solucionar Embarassed

Muchas gracias
Volver arriba
Mensaje    Asunto: jaquemate Responder citando

Es normal: dentro del entorno IDE del C++Builder, las excepciones que se producen se muestran aunque esten controladas con el catch. Puedes pulsar F9 y verás como continúa la ejecución del programa. Sin embargo, si ejecutas el programa fuera del entorno, verás como no se produce la excepción. Bueno, en realidad se produce pero es controlada por la instrucción catch.

De todas formas, creo que deberías incluir una instrucción return dentro del bloque catch para que el programa no continúe con los cálculos.

Un saludo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Visitar sitio web del autor
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.