diff --git a/src/utils/readspectrum.cpp b/src/utils/readspectrum.cpp
index 6fada3cb6a9c0f4bbab48ad2288fab41813ac233..b84e14943b2494ba0f0f74853b1ef48088455e52 100644
--- a/src/utils/readspectrum.cpp
+++ b/src/utils/readspectrum.cpp
@@ -123,13 +123,28 @@ pappso::QualifiedSpectrum getQualifiedSpectrumFromPwizMSDataFile(pwiz::msdata::M
         string nativeScanId = pwiz::msdata::id::translateScanNumberToNativeID(native_id_format, QString("%1").arg(scan_num).toStdString());
         spectrum_index = spectrum_list_ptr.get()->find(nativeScanId);
     }
-    qDebug() << "spectrum_index " << spectrum_index;
+    qDebug() << "getQualifiedSpectrumFromPwizMSDataFile spectrum_index " << spectrum_index;
     if (spectrum_index == spectrum_list_ptr.get()->size()) {
         //pwiz::msdata::SpectrumPtr simple_spectrum_pwiz = spectrum_list_ptr.get()->spectrum(10, getBinaryData);
         //qDebug() << "spectrum id 10 " << simple_spectrum_pwiz.get()->get;
-        throw ExceptionNotFound(QObject::tr("scan number %1 not found MS file").arg(scan_num));
+        throw ExceptionNotFound(QObject::tr("scan number %1 not found in MS file").arg(scan_num));
     }
-    pwiz::msdata::SpectrumPtr simple_spectrum_pwiz = spectrum_list_ptr.get()->spectrum(spectrum_index, getBinaryData);
+    pwiz::msdata::SpectrumPtr simple_spectrum_pwiz;
+    try {
+        simple_spectrum_pwiz = spectrum_list_ptr.get()->spectrum(spectrum_index, getBinaryData);
+    } catch (std::runtime_error & error) {
+         qDebug() << "getQualifiedSpectrumFromPwizMSDataFile error " << error.what() << " " << typeid(error).name();
+        throw ExceptionNotFound(QObject::tr("scan number %1 not found in MS file std::runtime_error :\n%2").arg(scan_num).arg(error.what()));
+    } 
+    catch (std::exception & error) {
+         qDebug() << "getQualifiedSpectrumFromPwizMSDataFile error " << error.what() << " " << typeid(error).name();
+        throw ExceptionNotFound(QObject::tr("scan number %1 not found in MS file :\n%2").arg(scan_num).arg(error.what()));
+    } 
+    if (simple_spectrum_pwiz.get() == nullptr) {
+        throw ExceptionNotFound(QObject::tr("scan number %1 not found in MS file : null pointer").arg(scan_num));
+    }
+    
+    qDebug() << "getQualifiedSpectrumFromPwizMSDataFile precursors.size() " << simple_spectrum_pwiz.get()->precursors.size();
     if (simple_spectrum_pwiz.get()->precursors.size() > 0) {
         pwiz::msdata::Precursor & precursor = *(simple_spectrum_pwiz.get()->precursors.begin());
         if (precursor.selectedIons.size() > 0) {
@@ -158,7 +173,8 @@ pappso::QualifiedSpectrum getQualifiedSpectrumFromPwizMSDataFile(pwiz::msdata::M
         }
     }
 
-    unsigned int msLevel(QString(simple_spectrum_pwiz->cvParam(pwiz::msdata::MS_ms_level).value.c_str()).toUInt());
+     qDebug() << "getQualifiedSpectrumFromPwizMSDataFile msLevel" ;
+   unsigned int msLevel(QString(simple_spectrum_pwiz->cvParam(pwiz::msdata::MS_ms_level).value.c_str()).toUInt());
 
     pappso_double retentionTime = QString(simple_spectrum_pwiz->scanList.scans[0].cvParam(pwiz::msdata::MS_scan_start_time).value.c_str()).toDouble();
     qspectrum.setRtInSeconds(retentionTime);
@@ -185,7 +201,7 @@ pappso::QualifiedSpectrum getQualifiedSpectrumFromPwizMSDataFile(pwiz::msdata::M
         //qDebug() << "it->mz " << it->mz << " it->intensity" << it->intensity;
         spectrum.push_back(Peak(it->mz, it->intensity));
     }
-    qDebug() << "spectrum size " << spectrum.size();
+    qDebug() << "getQualifiedSpectrumFromPwizMSDataFile spectrum size " << spectrum.size();
     if (native_id_format ==  pwiz::cv::CVID::MS_Mascot_MGF_format) {
         //sort peaks by mz
         spectrum = spectrum.takeNmostIntense(1000);
@@ -197,6 +213,7 @@ pappso::QualifiedSpectrum getQualifiedSpectrumFromPwizMSDataFile(pwiz::msdata::M
     //qDebug() << " env=" << localeconv () << " lc->decimal_point " << lc->decimal_point;
     SpectrumSp spectrum_sp = spectrum.makeSpectrumSp();
     qspectrum.setOriginalSpectrumSp(spectrum_sp);
+    qDebug() << "getQualifiedSpectrumFromPwizMSDataFile end ";
     return qspectrum;
 }