src
tools
exception.cpp
Go to the documentation of this file.
1
//
2
// Copyright (c) 2018, University of Edinburgh
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are met:
7
//
8
// * Redistributions of source code must retain the above copyright notice,
9
// this list of conditions and the following disclaimer.
10
// * Redistributions in binary form must reproduce the above copyright
11
// notice, this list of conditions and the following disclaimer in the
12
// documentation and/or other materials provided with the distribution.
13
// * Neither the name of nor the names of its contributors may be used to
14
// endorse or promote products derived from this software without specific
15
// prior written permission.
16
//
17
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21
// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22
// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23
// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24
// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26
// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27
// POSSIBILITY OF SUCH DAMAGE.
28
//
29
30
#include "
exotica_core/tools/exception.h
"
31
32
namespace
exotica
33
{
34
Exception::ReportingType
Exception::reporting_
=
Exception::Message
|
Exception::FileName
|
Exception::FunctionName
|
Exception::LineNumber
|
Exception::ObjectName
;
35
36
Exception::Exception
(
const
std::string &msg,
const
char
*file,
const
char
*func,
int
line,
const
std::string &
object
)
37
{
38
std::string tmp;
39
if
(
Exception::reporting_
|
FileName
) tmp +=
"In "
+ std::string(file) +
"\n"
;
40
if
(
Exception::reporting_
|
FunctionName
) tmp += std::string(func) +
" "
;
41
if
(
Exception::reporting_
|
LineNumber
) tmp += std::to_string(line) +
"\n"
;
42
if
((
Exception::reporting_
|
ObjectName
) && !
object
.empty()) tmp +=
"Object: "
+
object
+
": "
;
43
if
(
Exception::reporting_
|
Message
) tmp += msg;
44
msg_
= tmp;
45
}
46
47
const
char
*
Exception::what
() const noexcept
48
{
49
return
msg_
.c_str();
50
}
51
}
// namespace exotica
exotica::Exception::what
virtual const char * what() const noexcept
Definition:
exception.cpp:47
exotica::Exception::ReportingType
ReportingType
Definition:
exception.h:54
exotica::Exception::Exception
Exception(const std::string &msg, const char *file, const char *func, int line, const std::string &object=std::string())
Definition:
exception.cpp:36
exotica::Exception::LineNumber
@ LineNumber
Definition:
exception.h:59
exotica::Exception::Message
@ Message
Definition:
exception.h:56
exotica::Exception::reporting_
static ReportingType reporting_
Definition:
exception.h:69
exotica
Definition:
collision_scene.h:46
exotica::Exception::ObjectName
@ ObjectName
Definition:
exception.h:60
exotica::Exception::msg_
std::string msg_
Definition:
exception.h:66
exotica::Exception::FileName
@ FileName
Definition:
exception.h:57
exotica::Exception::FunctionName
@ FunctionName
Definition:
exception.h:58
exception.h
exotica_core
Author(s): Yiming Yang, Michael Camilleri
autogenerated on Fri Aug 2 2024 08:43:02