Visual Servoing Platform version 3.6.0
Loading...
Searching...
No Matches
vpException.h
1/*
2 * ViSP, open source Visual Servoing Platform software.
3 * Copyright (C) 2005 - 2023 by Inria. All rights reserved.
4 *
5 * This software is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 * See the file LICENSE.txt at the root directory of this source
10 * distribution for additional information about the GNU GPL.
11 *
12 * For using ViSP with software that can not be combined with the GNU
13 * GPL, please contact Inria about acquiring a ViSP Professional
14 * Edition License.
15 *
16 * See https://visp.inria.fr for more information.
17 *
18 * This software was developed at:
19 * Inria Rennes - Bretagne Atlantique
20 * Campus Universitaire de Beaulieu
21 * 35042 Rennes Cedex
22 * France
23 *
24 * If you have questions regarding the use of this file, please contact
25 * Inria at visp@inria.fr
26 *
27 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
28 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
29 *
30 * Description:
31 * Exception handling.
32 */
33
39#ifndef _vpException_h_
40#define _vpException_h_
41
42#include <visp3/core/vpConfig.h>
43
44#include <iostream>
45#include <stdarg.h>
46#include <string>
47
58class VISP_EXPORT vpException : public std::exception
59{
60protected:
62 int code;
63
65 std::string message;
66
68 void setMessage(const char *format, va_list args);
69
71 vpException() : code(notInitialized), message("") { };
72
73public:
88
92 vpException(int code, const char *format, va_list args);
96 vpException(int code, const char *format, ...);
97
101 vpException(int code, const std::string &msg);
102
106 explicit vpException(int code);
107
112#if VISP_CXX_STANDARD > VISP_CXX_STANDARD_98
113 virtual ~vpException() { }
114#else
115 virtual ~vpException() throw() { }
116#endif
117
123 int getCode() const;
124
128 const std::string &getStringMessage() const;
129
134 const char *getMessage() const;
135
142 const char *what() const throw();
144
148 friend VISP_EXPORT std::ostream &operator<<(std::ostream &os, const vpException &art);
149};
150
151#endif
error that can be emitted by ViSP classes.
Definition vpException.h:59
int code
Contains the error code, see the errorCodeEnum table for details.
Definition vpException.h:62
vpException()
forbid the empty constructor (protected)
Definition vpException.h:71
@ ioError
I/O error.
Definition vpException.h:79
@ cannotUseConstructorError
Contructor error.
Definition vpException.h:80
@ badValue
Used to indicate that a value is not in the allowed range.
Definition vpException.h:85
@ functionNotImplementedError
Function not implemented.
Definition vpException.h:78
@ dimensionError
Bad dimension.
Definition vpException.h:83
@ memoryFreeError
Memory free error.
Definition vpException.h:77
@ notImplementedError
Not implemented.
Definition vpException.h:81
@ memoryAllocationError
Memory allocation error.
Definition vpException.h:76
@ fatalError
Fatal error.
Definition vpException.h:84
@ divideByZeroError
Division by zero.
Definition vpException.h:82
virtual ~vpException()
std::string message
Contains an error message (can be empty)
Definition vpException.h:65