1 /* libcmis 2 * Version: MPL 1.1 / GPLv2+ / LGPLv2+ 3 * 4 * The contents of this file are subject to the Mozilla Public License Version 5 * 1.1 (the "License"); you may not use this file except in compliance with 6 * the License or as specified alternatively below. You may obtain a copy of 7 * the License at http://www.mozilla.org/MPL/ 8 * 9 * Software distributed under the License is distributed on an "AS IS" basis, 10 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 11 * for the specific language governing rights and limitations under the 12 * License. 13 * 14 * Major Contributor(s): 15 * Copyright (C) 2011 SUSE <cbosdonnat@suse.com> 16 * 17 * 18 * All Rights Reserved. 19 * 20 * For minor contributions see the git repository. 21 * 22 * Alternatively, the contents of this file may be used under the terms of 23 * either the GNU General Public License Version 2 or later (the "GPLv2+"), or 24 * the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"), 25 * in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable 26 * instead of those above. 27 */ 28 #ifndef _EXCEPTION_HXX_ 29 #define _EXCEPTION_HXX_ 30 31 #include <exception> 32 #include <string> 33 34 #include "libcmis/libcmis-api.h" 35 36 namespace libcmis 37 { 38 class LIBCMIS_API Exception : public std::exception 39 { 40 private: 41 std::string m_message; 42 std::string m_type; 43 44 public: Exception(std::string message,std::string type="runtime")45 Exception( std::string message, std::string type = "runtime" ) : 46 exception( ), 47 m_message( message ), 48 m_type( type ) 49 { 50 } 51 ~Exception()52 ~Exception( ) noexcept { } what() const53 virtual const char* what() const noexcept 54 { 55 return m_message.c_str( ); 56 } 57 getType() const58 std::string getType( ) const { return m_type; } 59 }; 60 } 61 62 #endif 63