Я просмотрел источник , чтобы найти место, где возникла ошибка, и обнаружил , что в вашем конкретном случае она увеличивается на
if (!PointCloudCoherence<PointInT>::initCompute ())
{
PCL_ERROR ("[pcl::%s::initCompute] PointCloudCoherence::Init failed.\n", getClassName().c_str());
return (false);
}
так что вы видите, здесь нет throw xxx
, а есть только макрос , который скрывает от нас фактическую обработку ошибок.
Чтобы выяснить, что именно происходило, я искал определение PCL_ERROR
, и в результате поиска было определено, что оно определено в файле print.h
как
#define PCL_ERROR(...) pcl::console::print (pcl::console::L_ERROR, __VA_ARGS__)
с pcl::console::print
функцией просто печать ошибка, а не выброс исключение.
Итак, вы не можете отловить ошибку, потому что это не исключение , а скорее всего простой текст, записанный в консоль.