Commit 31c31ceb authored by Pavel Vainerman's avatar Pavel Vainerman

(ModbusTCP): подправил обработку исключений

parent 9a17e83a
......@@ -217,7 +217,7 @@ mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg,
}
catch( ModbusRTU::mbException& ex )
{
dlog[Debug::WARN] << "(query): " << ex << endl;
dlog[Debug::WARN] << "(query): " << ex << endl;
}
catch( SystemError& err )
{
......@@ -232,6 +232,10 @@ mbErrCode ModbusTCPMaster::query( ModbusAddr addr, ModbusMessage& msg,
dlog[Debug::WARN] << "(query): tcp error: " << e.getString() << endl;
return erTimeOut;
}
catch( std::exception& e )
{
dlog[Debug::CRIT] << "(query): " << e.what() << std::endl;
}
catch(...)
{
dlog[Debug::WARN] << "(query): cath..." << endl;
......@@ -272,20 +276,17 @@ void ModbusTCPMaster::reconnect()
tcp = new ost::TCPStream(iaddr.c_str(),ost::Socket::IPV4,536,true,500);
tcp->setTimeout(replyTimeOut_ms);
}
catch(ost::Socket *socket)
{
ost::tpport_t port;
int err = socket->getErrorNumber();
ost::InetAddress saddr = (ost::InetAddress)socket->getPeer(&port);
dlog[Debug::CRIT] << "tcp error " << saddr.getHostname() << ":" << port << " = " << err << endl;
}
catch( ost::SockException& e)
catch( std::exception& e )
{
dlog[Debug::CRIT] << "tcp error: " << e.getString() << endl;
ostringstream s;
s << "(ModbusTCPMaster): connection " << s.str() << " error: " << e.what();
dlog[Debug::CRIT] << s.str() << std::endl;
}
catch(...)
catch( ... )
{
dlog[Debug::CRIT] << "create TCPStream[" << iaddr << "] error..." << endl;
ostringstream s;
s << "(ModbusTCPMaster): connection " << s.str() << " error: catch ...";
dlog[Debug::CRIT] << s.str() << std::endl;
}
}
// -------------------------------------------------------------------------
......@@ -307,26 +308,25 @@ void ModbusTCPMaster::connect( ost::InetAddress addr, int port )
dlog[Debug::INFO] << "(ModbusTCPMaster): connect to " << s.str() << endl;
iaddr = s.str();
ost::Thread::setException(ost::Thread::throwException);
try
{
tcp = new ost::TCPStream(iaddr.c_str());
tcp->setTimeout(replyTimeOut_ms);
}
catch(ost::Socket *socket)
catch( std::exception& e )
{
ost::tpport_t port;
int err = socket->getErrorNumber();
ost::InetAddress saddr = (ost::InetAddress)socket->getPeer(&port);
dlog[Debug::CRIT] << ": tcp error " << saddr.getHostname() << ":" << port << " = " << err << endl;
ostringstream s;
s << "(ModbusTCPMaster): connection " << s.str() << " error: " << e.what();
dlog[Debug::CRIT] << s.str() << std::endl;
}
catch( ost::SockException& e)
catch( ... )
{
dlog[Debug::CRIT] << "tcp error: " << e.getString() << endl;
ostringstream s;
s << "(ModbusTCPMaster): connection " << s.str() << " error: catch ...";
dlog[Debug::CRIT] << s.str() << std::endl;
}
catch(...)
{
dlog[Debug::CRIT] << "create TCPStream[" << iaddr << "] error..." << endl;
}
// }
}
// -------------------------------------------------------------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment