diff --git a/Software/PC_Application/Calibration/calkit.cpp b/Software/PC_Application/Calibration/calkit.cpp index a180058..9180c4d 100644 --- a/Software/PC_Application/Calibration/calkit.cpp +++ b/Software/PC_Application/Calibration/calkit.cpp @@ -79,7 +79,11 @@ Calkit Calkit::fromFile(QString filename) } json j; - file >> j; + try { + file >> j; + } catch (exception &e) { + throw runtime_error("JSON parsing error: " + string(e.what())); + } if(j.contains("SOLT")) { qDebug() << "JSON format detected"; // calkit file uses json format, parse diff --git a/Software/PC_Application/Calibration/calkitdialog.cpp b/Software/PC_Application/Calibration/calkitdialog.cpp index 3298ce1..a4d975c 100644 --- a/Software/PC_Application/Calibration/calkitdialog.cpp +++ b/Software/PC_Application/Calibration/calkitdialog.cpp @@ -7,6 +7,7 @@ #include #include #include +#include using namespace std; @@ -119,7 +120,12 @@ CalkitDialog::CalkitDialog(Calkit &c, QWidget *parent) : connect(ui->buttonBox->button(QDialogButtonBox::Open), &QPushButton::clicked, [=](){ auto filename = QFileDialog::getOpenFileName(this, "Open calibration kit coefficients", "", "Calibration kit files (*.calkit)", nullptr, QFileDialog::DontUseNativeDialog); if(filename.length() > 0) { - ownKit = Calkit::fromFile(filename); + try { + ownKit = Calkit::fromFile(filename); + } catch (runtime_error e) { + QMessageBox::warning(nullptr, "Error", "The calibration kit file could not be parsed (" + QString(e.what()) + ")"); + qWarning() << "Parsing of calibration kit failed while opening calibration file: " << e.what(); + } updateEntries(); } }); diff --git a/Software/PC_Application/appwindow.cpp b/Software/PC_Application/appwindow.cpp index 918093f..5f6e360 100644 --- a/Software/PC_Application/appwindow.cpp +++ b/Software/PC_Application/appwindow.cpp @@ -178,7 +178,12 @@ AppWindow::AppWindow(QWidget *parent) return; } nlohmann::json j; - file >> j; + try { + file >> j; + } catch (exception &e) { + QMessageBox::warning(nullptr, "Error", "Failed to parse the setup file (" + QString(e.what()) + ")"); + qWarning() << "Parsing of setup file failed: " << e.what(); + } file.close(); LoadSetup(j); });