Exception handling and cleaning dynamic objects.
[emufront] / src / utils / fileutil.cpp
index 6ab5334..0cf3cd1 100644 (file)
@@ -77,6 +77,7 @@ int FileUtil::scanFilePath(FilePathObject *fp,
     QFileInfoList list = dir.entryInfoList();
     //qDebug() << "We have " << list.count() << " files to go through.";
     QList<MediaImageContainer*> containers;
+    try {
     progressDialog.setMinimum(0);
     progressDialog.setMaximum(list.size());
     for (int i = 0; i < list.size(); ++i)
@@ -127,6 +128,11 @@ int FileUtil::scanFilePath(FilePathObject *fp,
         containers.clear();
 
     }
+    } catch (EmuFrontException &e) {
+        qDebug() << "Got exception " << e.what() << ", aborting & deleting created data objects.";
+        qDeleteAll(containers);
+        throw e;
+    }
     //qDebug() << "Done scanning files!";
     return count;
 }