Я не уверен, почему это не работает. У меня есть подозрение, что это связано с отдельными рабочими потоками. Таким образом, я не смог найти какую-либо работу по захвату исключений.Ловля исключений при анонимном обратном вызове
Я думаю, что я могу создать объект Task, а затем запустить его, но я бы предпочел сохранить эту архитектуру, потому что код, содержащийся в ней, очень сложный.
public void MethodOne(){
try{
MethodTwo(response =>{
//Do something with the response
});
}
catch(Exception error){
//This never executes when method two throws exception
}
}
public void MethodTwo(Action<Object> callback){
//Conduct async call to external server
AppServer.MakeCall(response =>{
if(response.IsValid)
callback(response.Object);
else
throw new FooException();
});
}
Для процветания я решил пройти два обратных вызова. Один для успеха и один для неудачи. Я сделал их анонимными, так что это получилось довольно аккуратно. –