TFCweb
1.0.4 $Rev: 483 $
TFC Primavera 2012: Nucli d'un servidor web
Pàgina principal
Pàgines Relacionades
Espais de Noms
Classes
Fitxers
Llista dels Fitxers
Membres de Fitxers
src
Excepcions.h
Veure la documentació d'aquest fitxer.
1
#if !defined(_EXCEPCIONS_H_)
2
#define _EXCEPCIONS_H_
3
16
/*
17
* Copyright (c) 2012 Toni Corvera
18
*
19
* This file is part of TFCWeb.
20
*
21
* TFCWeb is free software: you can redistribute it and/or modify
22
* it under the terms of the GNU General Public License as published by
23
* the Free Software Foundation, either version 3 of the License, or
24
* (at your option) any later version.
25
*
26
* TFCWeb is distributed in the hope that it will be useful,
27
* but WITHOUT ANY WARRANTY; without even the implied warranty of
28
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29
* GNU General Public License for more details.
30
*
31
* You should have received a copy of the GNU General Public License
32
* along with TFCWeb. If not, see <http://www.gnu.org/licenses/>.
33
*/
34
35
#include "
CodisEstatHTTP.h
"
36
#include "
portabilitat.h
"
37
38
#include <stdexcept>
39
#include <string>
40
#include <boost/lexical_cast.hpp>
41
42
/*
43
* http://www.cplusplus.com/reference/std/stdexcept/
44
*
45
* Logic errors:
46
* logic_error -> Logic error exception
47
* domain_error -> Domain error exception
48
* invalid_argument -> Invalid argument exception
49
* length_error -> Length error exception
50
* out_of_range -> Out-of-range exception
51
*
52
* Runtime errors:
53
* runtime_error -> Runtime error exception
54
* range_error -> Range error exception
55
* overflow_error -> Overflow error exception
56
* underflow_error -> Underflow error exception
57
*/
58
59
namespace
tfc {
60
64
class
ErrorTFC
:
public
std::runtime_error {
65
public
:
66
explicit
ErrorTFC
(
const
std::string & w =
""
) throw ()
67
: std::runtime_error(w)
68
{
69
// buit
70
}
71
};
72
76
class
ErrorRutaInexistent
:
public
ErrorTFC
{
77
public
:
78
ErrorRutaInexistent
(
const
std::string & w =
"Ruta inexistent"
)
79
:
ErrorTFC
(w)
80
{
81
// buit
82
}
83
};
84
85
class
ErrorEscrivintEnSocket
:
public
ErrorTFC
{
86
public
:
87
explicit
ErrorEscrivintEnSocket
(
const
std::string & w =
"Error enviant dades"
)
88
:
ErrorTFC
(w)
89
{
90
// buit
91
}
92
};
93
98
class
ErrorHTTP
:
public
ErrorTFC
{
99
public
:
104
ErrorHTTP
(
const
std::string & w,
CodiEstatHTTP
c)
105
:
ErrorTFC
(w),
codi_
(c)
106
{
107
// buit
108
}
109
virtual
~ErrorHTTP
() throw () {
110
// buit
111
}
113
CodiEstatHTTP
codi
()
const
{
return
codi_
; }
114
private
:
116
CodiEstatHTTP
codi_
;
117
};
118
122
class
ErrorHTTPBadRequest
:
public
ErrorHTTP
{
123
public
:
124
explicit
ErrorHTTPBadRequest
(
const
std::string & w =
"Petició HTTP incorrecta"
,
125
CodiEstatHTTP
c =
CODI_400
)
126
:
ErrorHTTP
(w, c)
127
{
128
// buit
129
}
130
};
131
135
class
ErrorHTTPIntern
:
public
ErrorHTTP
{
136
public
:
137
explicit
ErrorHTTPIntern
(
const
std::string & w =
"Error intern del servidor"
,
138
CodiEstatHTTP
c =
CODI_500
)
139
:
ErrorHTTP
(w, c)
140
{
141
// buit
142
}
143
};
144
145
// ---------------------- Ajudes per al desenvolupament ---------------------- //
146
148
#define FITXER_I_LINIA_ \
149
(std::string(__FILE__":")+boost::lexical_cast<std::string>(__LINE__))
150
154
class
ErrorNoImplementat
:
public
ErrorTFC
{
155
public
:
156
explicit
ErrorNoImplementat
(
const
std::string & w =
"No implementat"
)
157
:
ErrorTFC
(w)
158
{
159
// buit
160
}
161
};
162
163
// FIXME: Definició ràpida d'excepcions durant el desenvolupament
164
#define DEFINEIX_EXCEPCIO(nom, base) struct nom : public base {\
165
explicit nom(const std::string &w = "") : base(w) {} \
166
}
167
168
}
// ns tfc
169
170
#endif // _EXCEPCIONS_H_
171
172
// vim:set ts=4 et ai: //
Generat a Dl Jun 17 2013 20:07:39 per a TFCweb per
1.8.1.2