Visual Servoing Platform
version 3.3.0
vpException.cpp
1
/****************************************************************************
2
*
3
* ViSP, open source Visual Servoing Platform software.
4
* Copyright (C) 2005 - 2019 by Inria. All rights reserved.
5
*
6
* This software is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; either version 2 of the License, or
9
* (at your option) any later version.
10
* See the file LICENSE.txt at the root directory of this source
11
* distribution for additional information about the GNU GPL.
12
*
13
* For using ViSP with software that can not be combined with the GNU
14
* GPL, please contact Inria about acquiring a ViSP Professional
15
* Edition License.
16
*
17
* See http://visp.inria.fr for more information.
18
*
19
* This software was developed at:
20
* Inria Rennes - Bretagne Atlantique
21
* Campus Universitaire de Beaulieu
22
* 35042 Rennes Cedex
23
* France
24
*
25
* If you have questions regarding the use of this file, please contact
26
* Inria at visp@inria.fr
27
*
28
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
29
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
30
*
31
* Description:
32
* Exception handling.
33
*
34
* Authors:
35
* Nicolas Mansard
36
*
37
*****************************************************************************/
38
39
/* \file vpException.cpp
40
\brief error that can be emited by the vp class and its derivates
41
*/
42
43
#include "visp3/core/vpException.h"
44
#include <stdio.h>
45
46
/* -------------------------------------------------------------------------
47
*/
48
/* --- CONSTRUCTORS --------------------------------------------------------
49
*/
50
/* -------------------------------------------------------------------------
51
*/
52
vpException::vpException
(
int
id
) : code(id), message() {}
53
54
vpException::vpException
(
int
id
,
const
std::string &msg) : code(id), message(msg) {}
55
56
vpException::vpException
(
int
id
,
const
char
*format, ...) : code(id), message()
57
{
58
va_list args;
59
va_start(args, format);
60
setMessage
(format, args);
61
va_end(args);
62
}
63
64
vpException::vpException
(
int
id
,
const
char
*format, va_list args) : code(id), message()
65
{
66
setMessage
(format, args);
67
}
68
/* ------------------------------------------------------------------------ */
69
/* --- DESTRUCTORS -------------------------------------------------------- */
70
/* ------------------------------------------------------------------------ */
71
72
/* Destructeur par default suffisant. */
73
// vpException::
74
// ~vpException (void)
75
// {
76
// }
77
78
void
vpException::setMessage
(
const
char
*format, va_list args)
79
{
80
char
buffer[1024];
81
vsnprintf(buffer, 1024, format, args);
82
std::string msg(buffer);
83
message
= msg;
84
}
85
86
/* ------------------------------------------------------------------------ */
87
/* --- ACCESSORS ---------------------------------------------------------- */
88
/* ------------------------------------------------------------------------ */
89
90
const
char
*
vpException::getMessage
(
void
)
const
{
return
(this->
message
).c_str(); }
91
92
const
std::string &
vpException::getStringMessage
(
void
)
const
{
return
this->
message
; }
93
94
int
vpException::getCode
(
void
) {
return
this->
code
; }
95
102
const
char
*
vpException::what
()
const
throw() {
return
(this->
message
).c_str(); }
103
104
/* -------------------------------------------------------------------------
105
*/
106
/* --- MODIFIORS -----------------------------------------------------------
107
*/
108
/* -------------------------------------------------------------------------
109
*/
110
111
/* -------------------------------------------------------------------------
112
*/
113
/* --- OP << ---------------------------------------------------------------
114
*/
115
/* -------------------------------------------------------------------------
116
*/
117
118
VISP_EXPORT std::ostream &
operator<<
(std::ostream &os,
const
vpException
&error)
119
{
120
os <<
"Error ["
<< error.code <<
"]:\t"
<< error.message << std::endl;
121
122
return
os;
123
}
124
125
/*
126
* Local variables:
127
* c-basic-offset: 2
128
* End:
129
*/
vpException::getStringMessage
const std::string & getStringMessage(void) const
Send a reference (constant) related the error message (can be empty).
Definition:
vpException.cpp:92
vpException::getCode
int getCode(void)
Send the object code.
Definition:
vpException.cpp:94
vpException::message
std::string message
Contains an error message (can be empty)
Definition:
vpException.h:78
vpException::setMessage
void setMessage(const char *format, va_list args)
Set the message container.
Definition:
vpException.cpp:78
vpException::code
int code
Contains the error code, see the errorCodeEnum table for details.
Definition:
vpException.h:75
vpException::what
const char * what() const
Definition:
vpException.cpp:102
vpException::getMessage
const char * getMessage(void) const
Definition:
vpException.cpp:90
vpException::vpException
vpException()
forbid the empty constructor (protected)
Definition:
vpException.h:84
vpException
error that can be emited by ViSP classes.
Definition:
vpException.h:72
vpArray2D::operator<<
friend std::ostream & operator<<(std::ostream &s, const vpArray2D< Type > &A)
Definition:
vpArray2D.h:494
modules
core
src
tools
exceptions
vpException.cpp
Generated by
1.8.18