Skip to content

File Exception.h

File List > src > Exception.h

Go to the documentation of this file

// Copyright (c) 2012-2013, IGN France.
// Copyright (c) 2012-2022, Oslandia.
// SPDX-License-Identifier: LGPL-2.0-or-later

#ifndef _IGN_EXCEPTION_H_
#define _IGN_EXCEPTION_H_

#include "SFCGAL/config.h"

#include <string>

#include <boost/exception/all.hpp>
#include <boost/format.hpp>

namespace SFCGAL {

class SFCGAL_API Exception : public virtual boost::exception,
                             public virtual std::exception {
public:
  Exception() throw();
  Exception(std::string const &message) throw();
  virtual ~Exception() throw();

  virtual const char *
  what() const throw();
  std::string
  diagnostic() const throw();

protected:
  std::string _message;
};

class SFCGAL_API GeometryInvalidityException : public Exception {
public:
  GeometryInvalidityException(std::string const &message) : Exception(message)
  {
  }
};

class SFCGAL_API NotImplementedException : public Exception {
public:
  NotImplementedException(std::string const &message) : Exception(message) {}
};

class SFCGAL_API InappropriateGeometryException : public Exception {
public:
  InappropriateGeometryException(std::string const &message)
      : Exception(message)
  {
  }
};

class SFCGAL_API NonFiniteValueException : public Exception {
public:
  NonFiniteValueException(std::string const &message) : Exception(message) {}
};

class SFCGAL_API WktParseException : public Exception {
public:
  WktParseException(std::string const &message) : Exception(message) {}
};

} // namespace SFCGAL

#endif