Sha256: 31e2b314f76629f924fce358e869ae7a0bbafa607f50503e30932b519853b9f3

Contents?: true

Size: 1.52 KB

Versions: 6

Compression:

Stored size: 1.52 KB

Contents

// -*- c++ -*-
#pragma once
#ifndef __XOT_EXCEPTION_H__
#define __XOT_EXCEPTION_H__


#include <stdexcept>
#include <xot/string.h>


namespace Xot
{


	class XotError : public std::runtime_error
	{
		typedef std::runtime_error Super;
		public: XotError (const char* str = NULL);
	};


	class InvalidStateError : public XotError
	{
		typedef XotError Super;
		public: InvalidStateError (const char* str = NULL);
	};


	class SystemError : public XotError
	{
		typedef XotError Super;
		public: SystemError (const char* str = NULL);
	};


	class NotImplementedError : public XotError
	{
		typedef XotError Super;
		public: NotImplementedError (const char* str = NULL);
	};


	String error_text        (const char* file, int line, const char* str);

	String system_error_text (const char* file, int line, const char* str);


	namespace ErrorFunctions
	{

		[[noreturn]]
		void xot_error (
			const char* file, int line, const char* format = NULL, ...);

		[[noreturn]]
		void argument_error (
			const char* file, int line, const char* format = NULL, ...);

		[[noreturn]]
		void index_error (
			const char* file, int line, const char* format = NULL, ...);

		[[noreturn]]
		void invalid_state_error (
			const char* file, int line, const char* format = NULL, ...);

		[[noreturn]]
		void system_error (
			const char* file, int line, const char* format = NULL, ...);

		[[noreturn]]
		void not_implemented_error (
			const char* file, int line, const char* format = NULL, ...);

	}// ErrorFunctions


	using namespace ErrorFunctions;


}// Xot


#endif//EOH

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
xot-0.3.4 include/xot/exception.h
xot-0.3.3 include/xot/exception.h
xot-0.3.2 include/xot/exception.h
xot-0.3.1 include/xot/exception.h
xot-0.3 include/xot/exception.h
xot-0.2.1 include/xot/exception.h