CMS 3D CMS Logo

ExceptionMessages.cc

Go to the documentation of this file.
00001 #include "FWCore/MessageLogger/interface/ExceptionMessages.h"
00002 #include "FWCore/MessageLogger/interface/JobReport.h"
00003 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00004 #include "FWCore/Utilities/interface/Exception.h"
00005 #include <string>
00006 #include <sstream>
00007 
00008 namespace edm {
00009   void 
00010   printCmsException(cms::Exception& e, char const* prog, edm::JobReport * jobRep, int rc) try {
00011     std::string programName(prog ? prog : "program");
00012     std::string shortDesc("CMSException");
00013     std::ostringstream longDesc;
00014     longDesc << "cms::Exception caught in " 
00015              << programName
00016              << "\n"
00017              << e.explainSelf();
00018     edm::LogSystem(shortDesc) << longDesc.str() << "\n";
00019     if(jobRep) jobRep->reportError(shortDesc, longDesc.str(), rc);
00020   } catch(...) {
00021   }
00022 
00023   void printBadAllocException(char const *prog, edm::JobReport * jobRep, int rc) try {
00024     std::string programName(prog ? prog : "program");
00025     std::string shortDesc("std::bad_allocException");
00026     std::ostringstream longDesc;
00027     longDesc << "std::bad_alloc exception caught in "
00028              << programName
00029              << "\n"
00030              << "The job has probably exhausted the virtual memory available to the process.\n";
00031     edm::LogSystem(shortDesc) << longDesc.str() << "\n";
00032     if(jobRep) jobRep->reportError(shortDesc, longDesc.str(), rc);
00033   } catch(...) {
00034   }
00035 
00036   void printStdException(std::exception& e, char const*prog, edm::JobReport * jobRep, int rc) try {
00037     std::string programName(prog ? prog : "program");
00038     std::string shortDesc("StdLibException");
00039     std::ostringstream longDesc;
00040     longDesc << "Standard library exception caught in " 
00041              << programName
00042              << "\n"
00043              << e.what();
00044     edm::LogSystem(shortDesc) << longDesc.str() << "\n";
00045     if (jobRep) jobRep->reportError(shortDesc, longDesc.str(), rc);
00046   } catch(...) {
00047   }
00048 
00049   void printUnknownException(char const *prog, edm::JobReport * jobRep, int rc) try {
00050     std::string programName(prog ? prog : "program");
00051     std::string shortDesc("UnknownException");
00052     std::ostringstream longDesc;
00053     longDesc << "Unknown exception caught in "
00054              << programName
00055              << "\n";
00056     edm::LogSystem(shortDesc) << longDesc.str() << "\n";
00057     if (jobRep) jobRep->reportError(shortDesc, longDesc.str(), rc);
00058   } catch(...) {
00059   }
00060 }

Generated on Tue Jun 9 17:36:17 2009 for CMSSW by  doxygen 1.5.4