Index: trunk/FACT++/src/DataCalib.cc
===================================================================
--- trunk/FACT++/src/DataCalib.cc	(revision 14023)
+++ trunk/FACT++/src/DataCalib.cc	(revision 14024)
@@ -211,9 +211,6 @@
 }
 
-void DataCalib::WriteFits()
-{
-    // EXCEPTION HANDLEING!
-    const string filename = FormFileName("drs.fits");
-
+void DataCalib::WriteFits(const string &filename)
+{
     ofits file(filename.c_str());
 
@@ -258,8 +255,4 @@
     const int n = (1440*1024*4 + 1440*roi*2 + ntm*roi*2 + 3)*sizeof(float);
     file.WriteRow(fStats.data()+1, n);
-
-    ostringstream str;
-    str << "Wrote DRS calibration data (step=" << fData.fStep << ", roi=" << roi << ") to '" << filename << "'";
-    Info(str.str());
 }
 
@@ -308,5 +301,19 @@
 
     if (fData.fStep<=2)
-        WriteFits();
+    {
+        const string filename = FormFileName("drs.fits");
+        try
+        {
+            WriteFits(filename);
+
+            ostringstream str;
+            str << "Wrote DRS calibration data (step=" << fData.fStep << ", roi=" << fData.fRoi << ") to '" << filename << "'";
+            Info(str);
+        }
+        catch (const exception &e)
+        {
+            Error("Exception writing '"+filename+"': "+e.what());
+        }
+    }
 
     Update(fDim, fDimRuns);
Index: trunk/FACT++/src/DataCalib.h
===================================================================
--- trunk/FACT++/src/DataCalib.h	(revision 14023)
+++ trunk/FACT++/src/DataCalib.h	(revision 14024)
@@ -24,5 +24,5 @@
 //    uint16_t fDAC[8];
 
-    void WriteFits();
+    void WriteFits(const std::string &filename);
 
     int GetDrsStep() const { return fData.fStep; }
