~thomir-deactivatedaccount/cegui/fix-build

« back to all changes in this revision

Viewing changes to cegui/src/CEGUIExceptions.cpp

  • Committer: Thomi Richards
  • Date: 2013-02-06 22:13:36 UTC
  • Revision ID: thomi.richards@canonical.com-20130206221336-rsmud4k50g6nzv50
InitialĀ codeĀ import.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***********************************************************************
 
2
    filename:   CEGUIExceptions.cpp
 
3
    created:    20/2/2004
 
4
    author:     Paul D Turner, Frederico Jeronimo (fjeronimo)
 
5
 
 
6
    purpose:    Implements the exception classes used within the system
 
7
*************************************************************************/
 
8
/***************************************************************************
 
9
*   Copyright (C) 2004 - 2009 Paul D Turner & The CEGUI Development Team
 
10
*
 
11
*   Permission is hereby granted, free of charge, to any person obtaining
 
12
*   a copy of this software and associated documentation files (the
 
13
*   "Software"), to deal in the Software without restriction, including
 
14
*   without limitation the rights to use, copy, modify, merge, publish,
 
15
*   distribute, sublicense, and/or sell copies of the Software, and to
 
16
*   permit persons to whom the Software is furnished to do so, subject to
 
17
*   the following conditions:
 
18
*
 
19
*   The above copyright notice and this permission notice shall be
 
20
*   included in all copies or substantial portions of the Software.
 
21
*
 
22
*   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 
23
*   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 
24
*   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
 
25
*   IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
 
26
*   OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
 
27
*   ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 
28
*   OTHER DEALINGS IN THE SOFTWARE.
 
29
***************************************************************************/
 
30
#include "CEGUIExceptions.h"
 
31
#include "CEGUILogger.h"
 
32
#include "CEGUIPropertyHelper.h"
 
33
#include <iostream>
 
34
 
 
35
// Start of CEGUI namespace section
 
36
namespace CEGUI
 
37
{
 
38
//----------------------------------------------------------------------------//
 
39
Exception::Exception(const String& message, const String& name,
 
40
                     const String& filename, int line) :
 
41
    d_message(message),
 
42
    d_filename(filename),
 
43
    d_name(name),
 
44
    d_line(line),
 
45
    d_what(name + " in file " + filename  +
 
46
           "(" + PropertyHelper::intToString(line) + ") : " + message)
 
47
{
 
48
    // Log exception if possible
 
49
    Logger* const logger = Logger::getSingletonPtr();
 
50
    if (logger)
 
51
        logger->logEvent(d_what, Errors);
 
52
 
 
53
    // always output to stderr, since nobody seems to look in their log file!
 
54
    std::cerr << what() << std::endl;
 
55
}
 
56
 
 
57
//----------------------------------------------------------------------------//
 
58
Exception::~Exception(void) throw()
 
59
{
 
60
}
 
61
 
 
62
//----------------------------------------------------------------------------//
 
63
const char* Exception::what() const throw()
 
64
{
 
65
    return d_what.c_str();
 
66
}
 
67
 
 
68
//----------------------------------------------------------------------------//
 
69
 
 
70
} // End of  CEGUI namespace section