Consider the following code:
class Foo {
// boring parts omitted
private TcpClient socket;
public void Connect(){
socket.BeginConnect(Host, Port, new AsyncCallback(cbConnect), quux);
}
private void cbConnect(IAsyncResult result){
// blah
}
}
If socket
throws an exception after BeginConnect
returns and before cbConnect
gets called, where does it pop up? Is it even allowed to throw in the background?