/usr/include/gdcm-2.6/gdcmException.h is in libgdcm2-dev 2.6.6-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 | /*=========================================================================
Program: GDCM (Grassroots DICOM). A DICOM library
Copyright (c) 2006-2011 Mathieu Malaterre
All rights reserved.
See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#ifndef GDCMEXCEPTION_H
#define GDCMEXCEPTION_H
#include <cassert>
#include <cstdlib> // NULL
#include <exception>
#include <sstream> // ostringstream
#include <stdexcept> // logic_error
#include <string>
// Disable clang warning "dynamic exception specifications are deprecated".
// We need to be C++03 and C++11 compatible, and if we remove the 'throw()'
// specifier we'll get an error in C++03 by not matching the superclass.
#if defined(__clang__) && defined(__has_warning)
# if __has_warning("-Wdeprecated")
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wdeprecated"
# endif
#endif
namespace gdcm
{
/**
* \brief Exception
* \details Standard exception handling object.
* \note Its copy-constructor and assignment operator are generated by the
* compiler.
*/
class Exception : public std::exception
{
/// std::logic_error is used to internally hold a string.
/// It has the nice property of having a copy-constructor
/// that never fails. Thereby it provides the same guarantee to
/// the copy-constructor of gdcm::Exception.
typedef std::logic_error StringHolder;
/// Creates the text to be returned by Exception:what().
static StringHolder CreateWhat(const char* const desc,
const char* const file,
const unsigned int lineNumber,
const char* const func)
{
assert(desc != NULL);
assert(file != NULL);
assert(func != NULL);
std::ostringstream oswhat;
oswhat << file << ":" << lineNumber << " (" << func << "):\n";
oswhat << desc;
return StringHolder( oswhat.str() );
}
public:
/// Explicit constructor, initializing the description and the
/// text returned by what().
/// \note The last parameter is ignored for the time being.
/// It may be used to specify the function where the exception
/// was thrown.
explicit Exception(const char *desc = "None",
const char *file = __FILE__,
unsigned int lineNumber = __LINE__,
// FIXME: __PRETTY_FUNCTION__ is the non-mangled version for __GNUC__ compiler
const char *func = "" /*__FUNCTION__*/)
:
What( CreateWhat(desc, file, lineNumber, func) ),
Description(desc)
{
}
virtual ~Exception() throw() {}
/// what implementation
const char* what() const throw()
{
return What.what();
}
/// Return the Description
const char * GetDescription() const { return Description.what(); }
private:
StringHolder What;
StringHolder Description;
};
} // end namespace gdcm
// Undo warning suppression.
#if defined(__clang__) && defined(__has_warning)
# if __has_warning("-Wdeprecated")
# pragma clang diagnostic pop
# endif
#endif
#endif
|