Changes related to the removal of the deprecated AliCDBGrid::GetLatestVersion:
[u/mrichter/AliRoot.git] / STEER / CDB / AliCDBLocal.cxx
index f2221623478f86d7f280fa0d9f3612f2499558e0..8ffddd2c64b9f736c52d059771dc21e197212242 100644 (file)
@@ -21,6 +21,8 @@
 /////////////////////////////////////////////////////////////////////////////////////////////////
 
 #include <cstdlib>
+#include <stdexcept>
+
 #include <TSystem.h>
 #include <TObjString.h>
 #include <TRegexp.h>
@@ -30,6 +32,7 @@
 #include "AliCDBLocal.h"
 #include "AliCDBEntry.h"
 #include "AliLog.h"
+using namespace std;
 
 ClassImp(AliCDBLocal)
 
@@ -510,13 +513,18 @@ AliCDBEntry* AliCDBLocal::GetEntry(const AliCDBId& queryId) {
 
        AliCDBId* dataId = GetEntryId(queryId);
 
-       if (!dataId || !dataId->IsSpecified()) return NULL;
+        TString errMessage(TString::Format("No valid CDB object found! request was: %s", queryId.ToString().Data()));
+       if (!dataId || !dataId->IsSpecified()){
+                throw std::runtime_error(errMessage.Data());
+                return NULL;
+        }
 
        TString filename;
        if (!IdToFilename(*dataId, filename)) {
 
                AliDebug(2,Form("Bad data ID encountered! Subnormal error!"));
                delete dataId;
+               throw std::runtime_error(errMessage.Data());
                return NULL;
        }
 
@@ -524,6 +532,7 @@ AliCDBEntry* AliCDBLocal::GetEntry(const AliCDBId& queryId) {
        if (!file.IsOpen()) {
                AliDebug(2,Form("Can't open file <%s>!", filename.Data()));
                delete dataId;
+               throw std::runtime_error(errMessage.Data());
                return NULL;
        }
 
@@ -535,6 +544,7 @@ AliCDBEntry* AliCDBLocal::GetEntry(const AliCDBId& queryId) {
                AliDebug(2,Form("Bad storage data: No AliCDBEntry in file!"));
                file.Close();
                delete dataId;
+               throw std::runtime_error(errMessage.Data());
                return NULL;
        }
 
@@ -555,9 +565,10 @@ AliCDBEntry* AliCDBLocal::GetEntry(const AliCDBId& queryId) {
        // Check whether entry contains a TTree. In case load the tree in memory!
        LoadTreeFromFile(anEntry);
 
-       // close file, return retieved entry
+       // close file, return retrieved entry
        file.Close();
        delete dataId;
+
        return anEntry;
 }