00001 /* 00002 SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit 00003 Copyright (C) 2009, Michele Caini 00004 00005 This program is free software: you can redistribute it and/or modify 00006 it under the terms of the GNU General Public License as published by 00007 the Free Software Foundation, either version 3 of the License, or 00008 (at your option) any later version. 00009 00010 This program 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 this program. If not, see <http://www.gnu.org/licenses/>. 00017 */ 00018 00019 00020 #ifndef SAPECNGEXCEPTION_H 00021 #define SAPECNGEXCEPTION_H 00022 00023 00024 #include <boost/exception/all.hpp> 00025 00026 00027 namespace sapecng 00028 { 00029 00030 struct sapecng_exception 00031 : virtual std::exception, virtual boost::exception { }; 00032 00033 struct io_error: virtual sapecng_exception { }; 00034 struct file_error: virtual sapecng_exception { }; 00035 struct stream_error: virtual sapecng_exception { }; 00036 struct read_error: virtual sapecng_exception { }; 00037 struct write_error: virtual sapecng_exception { }; 00038 00039 struct file_read_error 00040 : virtual file_error, virtual read_error { }; 00041 00042 struct file_write_error 00043 : virtual file_error, virtual write_error { }; 00044 00045 struct stream_read_error 00046 : virtual stream_error, virtual read_error { }; 00047 00048 struct stream_write_error 00049 : virtual stream_error, virtual write_error { }; 00050 00051 00052 } 00053 00054 00055 #endif // SAPECNGEXCEPTION_H