笔者使用ActiveMQ作为系统中消息分发的服务器,由Java Web程序读取数据库实时记录作为Producer,接收端为C++Builder开发的客户端程序,常驻客户端右下角,弹窗显示实时消息。
测试时发现,当客户端断网(网线拔掉)或者服务器重启等连接中断时,客户端会直接退出,windows也没有报程序崩溃的问题,很是费解。
Debug调试代码发现问题出在自定义的Concumer类的异常处理时,调用了exit(1);
//SimpleAsyncConsumer.cpp 【1】
void SimpleAsyncConsumer::onException( const CMSException& ex AMQCPP_UNUSED )
{

在使用ActiveMQ作为消息服务器,C++Builder开发客户端的系统中,当遇到断网或服务器重启导致的连接中断时,客户端程序异常退出。经过Debug调试,发现问题是由于在自定义Consumer类的异常处理中调用了`exit(1)`,这导致了客户端的直接退出。解决方案是优化异常处理机制,避免使用`exit()`导致程序非正常退出。
最低0.47元/天 解锁文章
613

被折叠的 条评论
为什么被折叠?



