Embedded Template Library 1.0
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
58 exception(string_type reason_, string_type file_, numeric_type line_)
59 : reason_text(reason_),
60 file_text(file_),
61 line(line_)
62 {
63 }
64#else
65 //*************************************************************************
67 //*************************************************************************
68 ETL_CONSTEXPR
69 exception(string_type reason_, string_type /*file_*/, numeric_type line_)
70 : reason_text(reason_),
71 line(line_)
72 {
73 }
74#endif
75
76 //***************************************************************************
79 //***************************************************************************
80 ETL_CONSTEXPR
81 string_type what() const
82 {
83 return reason_text;
84 }
85
86
87 //***************************************************************************
90 //***************************************************************************
91 ETL_CONSTEXPR
92 string_type file_name() const
93 {
94#if defined(ETL_VERBOSE_ERRORS)
95 return file_text;
96#else
97 return "";
98#endif
99 }
100
101 //***************************************************************************
104 //***************************************************************************
105 ETL_CONSTEXPR
106 numeric_type line_number() const
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