Embedded Template Library 1.0
Loading...
Searching...
No Matches
exception.h
Go to the documentation of this file.
1
2
3/******************************************************************************
4The MIT License(MIT)
5
6Embedded Template Library.
7https://github.com/ETLCPP/etl
8https://www.etlcpp.com
9
10Copyright(c) 2014 John Wellbelove
11
12Permission is hereby granted, free of charge, to any person obtaining a copy
13of this software and associated documentation files(the "Software"), to deal
14in the Software without restriction, including without limitation the rights
15to use, copy, modify, merge, publish, distribute, sublicense, and / or sell
16copies of the Software, and to permit persons to whom the Software is
17furnished to do so, subject to the following conditions :
18
19The above copyright notice and this permission notice shall be included in all
20copies or substantial portions of the Software.
21
22THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
23IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
24FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE
25AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
26LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
27OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
28SOFTWARE.
29******************************************************************************/
30
31#ifndef ETL_EXCEPTION_INCLUDED
32#define ETL_EXCEPTION_INCLUDED
33
34#include "platform.h"
35
39
40namespace etl
41{
42 //***************************************************************************
45 //***************************************************************************
47 {
48 public:
49
50 typedef const char* string_type;
51 typedef int numeric_type;
52
53#if defined(ETL_VERBOSE_ERRORS)
54 //*************************************************************************
56 //*************************************************************************
57 ETL_CONSTEXPR
59 : reason_text(reason_),
61 line(line_)
62 {
63 }
64#else
65 //*************************************************************************
67 //*************************************************************************
68 ETL_CONSTEXPR
70 : reason_text(reason_),
71 line(line_)
72 {
73 }
74#endif
75
76 //***************************************************************************
79 //***************************************************************************
80 ETL_CONSTEXPR
82 {
83 return reason_text;
84 }
85
86
87 //***************************************************************************
90 //***************************************************************************
91 ETL_CONSTEXPR
93 {
94#if defined(ETL_VERBOSE_ERRORS)
95 return file_text;
96#else
97 return "";
98#endif
99 }
100
101 //***************************************************************************
104 //***************************************************************************
105 ETL_CONSTEXPR
107 {
108 return line;
109 }
110
111 private:
112
113 string_type reason_text;
114#if defined(ETL_VERBOSE_ERRORS)
115 string_type file_text;
116#endif
117 numeric_type line;
118 };
119}
120
121#endif
ETL_CONSTEXPR string_type what() const
Definition exception.h:81
ETL_CONSTEXPR string_type file_name() const
Definition exception.h:92
ETL_CONSTEXPR exception(string_type reason_, string_type, numeric_type line_)
Constructor.
Definition exception.h:69
ETL_CONSTEXPR numeric_type line_number() const
Definition exception.h:106
Definition exception.h:47
bitset_ext
Definition absolute.h:38
pair holds two objects of arbitrary type
Definition utility.h:164