AggregateExceptionを発生させない次のコードを持っています 集計例外が発生せず、理由を理解できません。通常、などの集計例外はないTest()
を実行するタスクを完了するために、コード使用してタスクTPLを使用しているときに例外が発生しない
Test2()
を実行します)あなたの継続タスクの完了を待っているためです
class Program
{
static void Main(string[] args)
{
var task1 = Task.Factory.StartNew(() =>
{
Test();
}).ContinueWith((previousTask) =>
{
Test2();
});
try
{
task1.Wait();
}
catch (AggregateException ae)
{
foreach (var e in ae.InnerExceptions)
{
// Handle the custom exception.
if (e is CustomException)
{
Console.WriteLine(e.Message);
}
// Rethrow any other exception.
else
{
throw;
}
}
}
}
static void Test()
{
throw new CustomException("This exception is expected!");
}
static void Test2()
{
Console.WriteLine("Test2");
}
}
public class CustomException : Exception
{
public CustomException(String message) : base(message)
{ }
}
}
あなたのコードにチャンスがある前にデバッガがそれをキャッチしていないことを確認しますか? – BugFinder
私がデバッガと同じ問題を使用しない場合でも。私は ''この例外が予想される ''を得ることはできません '' – codejunkie
コードはwaitが試行される前にエラーが起きているというStartNewを使用しているので、Idは考えています – BugFinder