Branch data Line data Source code
1 : : /* 2 : : * libpal - Automated Placement of Labels Library 3 : : * 4 : : * Copyright (C) 2008 Maxence Laurent, MIS-TIC, HEIG-VD 5 : : * University of Applied Sciences, Western Switzerland 6 : : * http://www.hes-so.ch 7 : : * 8 : : * Contact: 9 : : * maxence.laurent <at> heig-vd <dot> ch 10 : : * or 11 : : * eric.taillard <at> heig-vd <dot> ch 12 : : * 13 : : * This file is part of libpal. 14 : : * 15 : : * libpal is free software: you can redistribute it and/or modify 16 : : * it under the terms of the GNU General Public License as published by 17 : : * the Free Software Foundation, either version 3 of the License, or 18 : : * (at your option) any later version. 19 : : * 20 : : * libpal is distributed in the hope that it will be useful, 21 : : * but WITHOUT ANY WARRANTY; without even the implied warranty of 22 : : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 23 : : * GNU General Public License for more details. 24 : : * 25 : : * You should have received a copy of the GNU General Public License 26 : : * along with libpal. If not, see <http://www.gnu.org/licenses/>. 27 : : * 28 : : */ 29 : : 30 : : #ifndef INTERNAL_EXCEPTION_H 31 : : #define INTERNAL_EXCEPTION_H 32 : : 33 : : #include <exception> 34 : : 35 : : namespace pal 36 : : { 37 : : 38 : : /** 39 : : * \brief Various Exceptions 40 : : * \ingroup core 41 : : */ 42 : : class InternalException 43 : : { 44 : : public: 45 : : 46 : : /** 47 : : * \brief Thrown when something is added in a Full set 48 : : * \ingroup core 49 : : */ 50 : 0 : class Full : public std::exception 51 : : { 52 : 0 : const char *what() const throw() override 53 : : { 54 : 0 : return "This set is full..."; 55 : : } 56 : : }; 57 : : 58 : : /** 59 : : * \brief Thrown when trying to access an empty data set 60 : : * \ingroup core 61 : : */ 62 : 0 : class Empty : public std::exception 63 : : { 64 : 0 : const char *what() const throw() override 65 : : { 66 : 0 : return "This set is empty..."; 67 : : } 68 : : }; 69 : : 70 : : /** 71 : : * \brief Thrown when a geometry type is not like expected 72 : : * \ingroup core 73 : : */ 74 : : class WrongGeometry : public std::exception 75 : : { 76 : : const char *what() const throw() override 77 : : { 78 : : return "GeometryTypeId is not expected..."; 79 : : } 80 : : }; 81 : : 82 : : /** 83 : : * \brief Thrown when a geometry type is not like expected 84 : : * \ingroup core 85 : : */ 86 : 0 : class UnknownGeometry : public std::exception 87 : : { 88 : 0 : const char *what() const throw() override 89 : : { 90 : 0 : return "Geometry Type is unknown"; 91 : : } 92 : : }; 93 : : 94 : : 95 : : /** 96 : : * \brief Throw an exception when it's impossible to compute labelPosition 97 : : * \ingroup core 98 : : */ 99 : : class NoLabelPosition : public std::exception 100 : : { 101 : : const char *what() const throw() override 102 : : { 103 : : return "No way to compute positions"; 104 : : } 105 : : }; 106 : : }; 107 : : 108 : : } // end namespace 109 : : 110 : : #endif