runPrepared rethrows exceptions

This commit is contained in:
Nyall Dawson 2017-07-01 16:30:11 +10:00
parent 90f10ae853
commit ebd346c407
2 changed files with 16 additions and 9 deletions

View File

@ -334,10 +334,17 @@ QVariantMap QgsProcessingAlgorithm::run( const QVariantMap &parameters, QgsProce
if ( !res )
return QVariantMap();
QVariantMap runRes = alg->runPrepared( parameters, context, feedback );
if ( !alg->mHasExecuted )
QVariantMap runRes;
try
{
runRes = alg->runPrepared( parameters, context, feedback );
}
catch ( QgsProcessingException &e )
{
QgsMessageLog::logMessage( e.what(), QObject::tr( "Processing" ), QgsMessageLog::CRITICAL );
feedback->reportError( e.what() );
return QVariantMap();
}
if ( ok )
*ok = true;
@ -410,17 +417,15 @@ QVariantMap QgsProcessingAlgorithm::runPrepared( const QVariantMap &parameters,
}
return runResults;
}
catch ( QgsProcessingException &e )
catch ( QgsProcessingException & )
{
QgsMessageLog::logMessage( e.what(), QObject::tr( "Processing" ), QgsMessageLog::CRITICAL );
feedback->reportError( e.what() );
if ( mLocalContext )
{
// see above!
mLocalContext->pushToThread( context.thread() );
}
return QVariantMap();
//rethrow
throw;
}
}

View File

@ -52,8 +52,10 @@ bool QgsProcessingAlgRunnerTask::run()
mResults = mAlgorithm->runPrepared( mParameters, mContext, mFeedback );
ok = true;
}
catch ( QgsProcessingException & )
catch ( QgsProcessingException &e )
{
QgsMessageLog::logMessage( e.what(), QObject::tr( "Processing" ), QgsMessageLog::CRITICAL );
mFeedback->reportError( e.what() );
return false;
}
return ok && !mFeedback->isCanceled();