00001 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ 00002 00003 /* 00004 Dataquay 00005 00006 A C++/Qt library for simple RDF datastore management with Redland. 00007 Copyright 2009 Chris Cannam. 00008 00009 Permission is hereby granted, free of charge, to any person 00010 obtaining a copy of this software and associated documentation 00011 files (the "Software"), to deal in the Software without 00012 restriction, including without limitation the rights to use, copy, 00013 modify, merge, publish, distribute, sublicense, and/or sell copies 00014 of the Software, and to permit persons to whom the Software is 00015 furnished to do so, subject to the following conditions: 00016 00017 The above copyright notice and this permission notice shall be 00018 included in all copies or substantial portions of the Software. 00019 00020 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 00021 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 00022 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 00023 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR 00024 ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF 00025 CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 00026 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 00027 00028 Except as contained in this notice, the name of Chris Cannam 00029 shall not be used in advertising or otherwise to promote the sale, 00030 use or other dealings in this Software without prior written 00031 authorization. 00032 */ 00033 00034 #ifndef _DATAQUAY_EXCEPTION_H_ 00035 #define _DATAQUAY_EXCEPTION_H_ 00036 00037 #include <QString> 00038 #include <exception> 00039 00040 namespace Dataquay 00041 { 00042 00048 class RDFException : virtual public std::exception 00049 { 00050 public: 00051 RDFException(QString message, QString data = "") throw() : 00052 m_message(message), m_data(data) { } 00053 virtual ~RDFException() throw() { } 00054 virtual const char *what() const throw() { 00055 if (m_data == "") { 00056 return m_message.toLocal8Bit().data(); 00057 } else { 00058 return QString("%1 [%2]").arg(m_message).arg(m_data).toLocal8Bit().data(); 00059 } 00060 } 00061 00062 protected: 00063 QString m_message; 00064 QString m_data; 00065 }; 00066 00074 class RDFDuplicateImportException : virtual public RDFException 00075 { 00076 public: 00077 RDFDuplicateImportException(QString message, QString data = "") throw() : 00078 RDFException(message, data) { } 00079 }; 00080 00081 } 00082 00083 #endif 00084
1.5.7.1