我尝试将@RequestMapping(value="/createP", method=RequestMethod.POST)
public String addPerson(Person person, Model model) {
personService.addPerson(person);
return "redirect:/listP";
}
@RequestMapping(value="/listP", method=RequestMethod.GET)
public String listPerson(Model model) {
model.addAttribute("persons", personService.getAllPersons());
return "ajaxExmpl";
}
的一封邮件副本发送给多个也是ActionBlock<int>
的消费者。这很好用,但是如果其中一个目标块抛出异常,它似乎不会传播到源块。这是我如何尝试处理异常,但它永远不会进入ActionBlock<int>
部分:
catch
我不确定我在这里缺少什么,但我希望能够检索异常以及哪个目标块出现故障。
答案 0 :(得分:1)
如果一个区块进入故障状态,它将不再接受新项目,并且它投掷的Exception
将附加到其Completion
任务和/或如果在管道中链接则传播完成。如果块拒绝更多项目,请观察Exception
您可以await
完成。
var processingTasks = targets.Select(async t =>
{
try
{
if(!await t.SendAsync(item))
await t.Completion;
}
catch
{
Trace.TraceInformation("handled in select"); // never goes here
}
});