Belle II Software  release-08-01-10
Exception.h
1 /* Copyright 2008-2010, Technische Universitaet Muenchen,
2  Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
3 
4  This file is part of GENFIT.
5 
6  GENFIT is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published
8  by the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  GENFIT is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18 */
23 #ifndef genfit_Exception_h
24 #define genfit_Exception_h
25 
26 #include <exception>
27 #include <string>
28 #include <vector>
29 #include <iostream>
30 #include <sstream>
31 
32 #include <TMatrixD.h>
33 
34 
35 namespace genfit {
36 
48 class Exception : public std::exception {
49 
50  public:
57  Exception(std::string excString, int line, std::string file);
58  virtual ~Exception() noexcept;
59 
61  void setFatal (bool b=true){fatal_=b;}
63  bool isFatal (){return fatal_;}
65  void setNumbers (std::string, const std::vector<double>&);
67  void setMatrices(std::string, const std::vector<TMatrixD>&);
68 
70  void info();
71 
73  virtual const char* what() const noexcept;
74 
75  std::string getExcString(){return excString_;}
76 
78  static void quiet(bool b=true){quiet_=b;}
79 
80  private:
81 
82  static bool quiet_;
83 
84  std::string excString_;
85  int line_;
86  std::string file_;
87 
88  std::string errorMessage_;
89 
90  std::string numbersLabel_;
91  std::string matricesLabel_;
92  std::vector<double> numbers_;
93  std::vector<TMatrixD> matrices_;
94 
95  bool fatal_;
96 
97  //ClassDef(Exception,1)
98 
99 };
100 
101 } /* End of namespace genfit */
104 #endif // genfit_Exception_h
Exception class for error handling in GENFIT (provides storage for diagnostic information)
Definition: Exception.h:48
void setFatal(bool b=true)
Set fatal flag.
Definition: Exception.h:61
bool isFatal()
Get fatal flag.
Definition: Exception.h:63
virtual const char * what() const noexcept
Standard error message handling for exceptions. use like "std::cerr << e.what();".
Definition: Exception.cc:52
void setMatrices(std::string, const std::vector< TMatrixD > &)
Set list of matrices with description.
Definition: Exception.cc:46
Exception(std::string excString, int line, std::string file)
Initializing constructor.
Definition: Exception.cc:27
static void quiet(bool b=true)
"std::cerr << e.what();" will not write anything.
Definition: Exception.h:78
void setNumbers(std::string, const std::vector< double > &)
Set list of numbers with description.
Definition: Exception.cc:40
void info()
Print information in the exception object.
Definition: Exception.cc:56
Defines for I/O streams used for error and debug printing.