Simple Application Framework
1
|
00001 /* 00002 This file is part of Simple Application Framework (Saf) library. 00003 Copyright (C) 2010 - 2012 Ondrej Danek <ondrej.danek@gmail.com> 00004 00005 This library is free software: you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published 00007 by the Free Software Foundation, either version 3 of the License, or 00008 (at your option) any later version. 00009 00010 Saf is distributed in the hope that it will be useful, 00011 but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 GNU General Public License for more details. 00014 00015 You should have received a copy of the GNU General Public License 00016 along with Simple Application Framework library. If not, 00017 see <http://www.gnu.org/licenses/>. 00018 */ 00019 00028 #ifndef SAF_EXCEPTION_H 00029 #define SAF_EXCEPTION_H 00030 00031 #include "SourceLocation.h" 00032 #include "Text/String.h" 00033 00034 namespace Saf 00035 { 00037 class Exception 00038 { 00039 private: 00041 Text::String m_func; 00043 Size m_line; 00045 Text::String m_msg; 00046 00047 public: 00053 Exception(const SourceLocation &loc, const Text::String &msg) 00054 : m_func(loc.m_func), m_line(loc.m_line), m_msg(msg) 00055 {} 00056 00058 ~Exception() 00059 {} 00060 00062 const Text::String &Function() const 00063 { 00064 return m_func; 00065 } 00066 00068 Size LineNumber() const 00069 { 00070 return m_line; 00071 } 00072 00074 const Text::String &Message() const 00075 { 00076 return m_msg; 00077 } 00078 }; 00079 } 00080 00081 #endif