Диалог можно создать и запустить только в основном потоке, следовательно его нельзя останавливать. Можно запустить дополнительньІй цикл обработки собьІтий. При етом программа остановится на точке до закрьІтия локального цикла.
catch ( ... )
{
MyDialog dialog;
int result = dialog.exec();
}