GazeboError.hh
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef GAZEBOERROR_HH
00029 #define GAZEBOERROR_HH
00030
00031 #include <iostream>
00032 #include <sstream>
00033 #include <string>
00034
00035 namespace gazebo
00036 {
00037
00041
00043 #define gzthrow(msg) throw gazebo::GazeboError(__FILE__,__LINE__,msg)
00044
00047
00059 class GazeboError
00060 {
00062 public: GazeboError();
00063
00068 public: GazeboError(const char *file,
00069 int line,
00070 std::string msg);
00071
00073 public: virtual ~GazeboError();
00074
00077 public: std::string GetErrorFile() const;
00078
00081 public: int GetErrorLine() const;
00082
00083
00086 public: std::string GetErrorStr() const;
00087
00089 private: std::string file;
00090
00092 private: int line;
00093
00095 private: std::string str;
00096
00098 public: friend std::ostream &operator<<(std::ostream& out, const gazebo::GazeboError &err)
00099 {
00100 return out << err.GetErrorFile()
00101 << ":" << err.GetErrorLine()
00102 << " : " << err.GetErrorStr();
00103 }
00104 };
00105
00107
00108 }
00109
00110 #endif