在平行区域内使用"throw exception"可以吗?

Is it fine to use "throw exception" inside parallel region?

本文关键字:exception throw 区域      更新时间:2023-10-16

并行区域内使用"抛出异常"可以吗?

当一个线程引发异常时,其余线程会发生什么情况?

法典:

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

在并行区域内执行的抛出必须导致在同一并行区域内恢复执行,并且必须由引发异常的同一线程捕获。

否则,它将传播为未处理的异常。