omniORB: An exception has occured and was caught by tcpSocketMT Worker thread.
请问这个一般是什么情况下发生的呢?我的服务端程序给客户端正确返回结果后,就报了这个错误,然后服务端就死了~
我是vc+omni做的,我做了客户端,另外做了服务端的一个接口,然后放到同事的工程里编译的。
接口实现的就是查询数据库列表,然后把结果集返回给客户端。问题奇怪的是,有时把数据库的某一条记录删除后再查询,就可以很正常的;而且,如果发生上面的异常,都是在服务端正确把结果返回给客户端之后才发生的。
返回的是自定义的一个结构体的序列~
数据库内的内容都是正确的,而且有时返回更多记录条数的时候都没这个异常~
------解决方法--------------------------------------------------------
omniORB支持多种线程模型,如果是在多线程模式下,你在CORBA类中写的代码是由一个专门的工作线程来执行的,因此它有必要将调用你的代码的部分用try/catch(...)对包起来,然后如果你的代码中抛出了未catch的异常,它就会得到机会处理,从而结束执行。
你可以在你的函数中用try/catch对包起来,这样异常就由你自己捕捉了。