Hi!
Ich habe ein ganz eigenartiges Phänomen! Ich habe eine klasse (ttsserver) implementiert und darin existiert eine public function: connect()!
Code
void ttsserver::connect() throw(){
nscRESULT result;
if(process_status.setLocal == 0){
errlog::warningLog("Network or Local Server not specified", __FILE__, __LINE__);
this->ip_address = "127.0.0.1";
}
if(process_status.setIPAddress == 0){
errlog::warningLog("IP Address has not been set. Using default IPAdress: 127.0.0.1", __FILE__, __LINE__);
this->ip_address = "127.0.0.1";
}
if(process_status.setCMDPort == 0){
errlog::warningLog("CMD port has not been set. Using default CMD port: 6666", __FILE__, __LINE__);
this->cmd_port = 6666;
}
if(process_status.setDATAPort == 0){
errlog::warningLog("DATA port has not been set. Using default DATA port: 6665", __FILE__, __LINE__);
this->data_port = 6665;
}
if(!this->islocal){
result = nCSCE(NSC_AF_INET,this->cmd_port,this->data_port,this->ip_address.c_str(),&hSrv);
}else{
result =nCSCE(NSC_AF_LOCAL,this->cmd_port,this->data_port,this->ip_address.c_str(),&hSrv);
}
switch(result){
case NSC_OK:
break;
case NSC_NOT_ENOUGH_MEMORY:
throw ttsserver::NotEnoughMemoryException("Cannot create server context", __FILE__, __LINE__);
return;
case NSC_SRV_NOTRUNNING:
throw ttsserver::NoServerException("Cannot create server context", __FILE__, __LINE__);
return;
}
process_status.createdServerContext = 1;
}
Alles anzeigen
nCSCE(..) ist eine Funktion aus einer c-Library und gibt nen int wert zurück! Wo anderst rufe ich
Code
server.setCmdPort(ui.CmdPort_LineEdit->value());
server.setDataPort(ui.DataPort_LineEdit->value());
server.setIPAdresse(ui.IP_LineEdit->text().toUtf8().constData());
try{
server.connect();
ui.statusbar->showMessage(tr("Verbindung erfolgreich aufgebaut"));
}catch(ttsserver::NoServerException &e){
ui.statusbar->showMessage(tr("Verbindungsaufbau nicht möglich 1"));
}catch(exception &e){
ui.statusbar->showMessage(tr("Verbindungsaufbau nicht möglich 2"));
}catch(...){
ui.statusbar->showMessage(tr("Verbindungsaufbau nicht möglich 3"));
}
Alles anzeigen
auf und bekomme "terminate called after throwing an instance of 'ttsserver::NoServerException'"!!
wenn ich innerhalb der Try { .. } ein throw ttsserver::NoServerException(""); aufrufe wirds richtig gefangen nur das andere nicht!
Ich programmier jetzt schon ziemlich ziemlich lang (heute) ... und ich find den Fehler nicht! wh. ists eh ganz einfach! aber im Moment hab ich keine Ahnung!
Thx für die Hilfe (im voraus)
lg Leocor