请考虑以下情况。
我有一个任务,它返回一个对象,可以说它的类型:
class A
{
string success;
}
现在任务的主体是例如:
{
return new A() { success = "yes" }
}
该任务的外部无关紧要,如果它是连续任务或其他任何东西。重要的是,在从该任务返回时,我可以通过 task.Result.status 读取这个返回的对象。
我遇到的问题是,如果我想在 try/catch 块中返回该类型的对象,task.Result.status 为空,并且 task.Result 属于 AggregatedException 类型。例如:
//(Task body)
{
{
try
{
//something throwing exception
}
catch(Exception exc)
{
return new A() { success = "yes" }
}
}
当执行从该任务返回时,我正在寻找一种方法来获取在 catch 块中返回的对象,而不是我现在收到的 AggregatedException。
请克制自己不要使用通常的论坛“答案”,例如“你为什么想要它”、“它有什么意义”等。我对这样的答案不感兴趣。
如果它不能完成并且你知道这是一个事实(也许抛出异常时的任务总是返回 AggregatedException 无论如何),那么请直截了当地告诉我。另一方面,如果可以的话,我会很高兴我能做到这一点。
卢卡斯