Orcus
exception.hpp
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 */
7
8#ifndef INCLUDED_ORCUS_EXCEPTION_HPP
9#define INCLUDED_ORCUS_EXCEPTION_HPP
10
11#include <stdexcept>
12#include <string>
13
14#include "env.hpp"
15
16namespace orcus {
17
18class ORCUS_PSR_DLLPUBLIC general_error : public std::exception
19{
20public:
21 explicit general_error(const std::string& msg);
22 explicit general_error(const std::string& cls, const std::string& msg);
23 virtual ~general_error() throw();
24 virtual const char* what() const throw();
25
26protected:
27 void append_msg(const std::string& s);
28
29private:
30 ::std::string m_msg;
31};
32
33class ORCUS_PSR_DLLPUBLIC invalid_arg_error : public std::invalid_argument
34{
35public:
36 explicit invalid_arg_error(const std::string& msg);
37 virtual ~invalid_arg_error() throw();
38};
39
40class ORCUS_PSR_DLLPUBLIC xml_structure_error : public general_error
41{
42public:
43 explicit xml_structure_error(const ::std::string& msg);
44 virtual ~xml_structure_error() throw();
45};
46
47class ORCUS_PSR_DLLPUBLIC json_structure_error : public general_error
48{
49public:
50 explicit json_structure_error(const ::std::string& msg);
51 virtual ~json_structure_error() throw();
52};
53
54class ORCUS_PSR_DLLPUBLIC invalid_map_error : public general_error
55{
56public:
57 explicit invalid_map_error(const ::std::string& msg);
58 virtual ~invalid_map_error() throw();
59};
60
61class ORCUS_PSR_DLLPUBLIC value_error : public general_error
62{
63public:
64 explicit value_error(const std::string& msg);
65 virtual ~value_error() throw();
66};
67
71class ORCUS_PSR_DLLPUBLIC xpath_error : public general_error
72{
73public:
74 xpath_error(const std::string& msg);
75 virtual ~xpath_error() throw();
76};
77
78namespace detail {
79
84class ORCUS_PSR_DLLPUBLIC parsing_aborted_error : public std::exception {};
85
86}
87
88}
89
90#endif
91
92/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Definition: exception.hpp:84
Definition: exception.hpp:19
Definition: exception.hpp:34
Definition: exception.hpp:55
Definition: exception.hpp:48
Definition: exception.hpp:62
Definition: exception.hpp:41
Definition: exception.hpp:72