3

並列領域内で「例外のスロー」を使用しても問題ありませんか?

1 つのスレッドが例外をスローすると、残りのスレッドはどうなりますか?

コード:

#pragma omp parallel for
for(int i = 0; i < n; i++)
{
     if(arr[i] < 0)
       throw BadParameter("bad array value");
}
4

1 に答える 1

5

並列領域内で実行されたスローは、同じ並列領域内で実行を再開する必要があり、例外をスローした同じスレッドによってキャッチされる必要があります。

そうしないと、未処理の例外に伝播します。

于 2012-05-03T20:59:38.977 に答える