我想知道我是否可以从服务器发送异常并在客户端接收它。 这是我的服务器:
void MyServer::on_new_message(int identifier, string message) {
if(/*some condition for message*/)
throw BadIO();
}
这是我客户的主要内容:
int main(){
try{
cin>>c;
socket.send(c);
socket.receive();
}
catch(BadIO& exp)
{
cout<<exp.what()<<endl;
}
return 0;
}
运行此代码后,我得到:
在抛出'BadIO'实例后终止调用 中止(核心倾销)
提前致谢:)
答案 0 :(得分:3)
有可能。
异常需要在服务器中序列化,就像在进程之间传递的任何其他对象一样。有一个特殊的异常消息,以便socket.receive
可以检测到它,反序列化异常并将其抛出到客户端。