2

私は何か間違ったことをしていると確信していますが、新しいスレッドタスクの例外処理のこの例を試してみると、ユーザーコードによって例外が処理されないままになります。コードの要点は、タスクのエラーをキャッチする方法の例を示すことです。

リンク:タスク例外の例

static void Main(string[] args)
        {
            var task1 = Task.Factory.StartNew(() =>
            {
                throw new MyCustomException("I'm bad, but not too bad!");
            });

            try
            {
                task1.Wait();
            }
            catch (AggregateException ae)
            {
                // Assume we know what's going on with this particular exception. 
                // Rethrow anything else. AggregateException.Handle provides 
                // another way to express this. See later example. 
                foreach (var e in ae.InnerExceptions)
                {
                    if (e is MyCustomException)
                    {
                        Console.WriteLine(e.Message);
                    }
                    else
                    {
                        throw;
                    }
                }

            }
        }

ほとんどの場合、ユーザーエラーは何がわからないか(Visual Studio 2012を使用)。

4

1 に答える 1

15

あなたが引用したページから:

ノート

「JustMyCode」を有効にすると、Visual Studioは例外をスローする行で中断し、「例外はユーザーコードで処理されません」というエラーメッセージを表示する場合があります。このエラーは無害です。F5キーを押して続行し、これらの例で示されている例外処理の動作を確認できます。Visual Studioが最初のエラーで壊れないようにするには、[ツール]、[オプション]、[デバッグ]、[一般]の[コードだけ]チェックボックスをオフにします。

于 2012-10-23T01:04:08.233 に答える