OpenCores
URL https://opencores.org/ocsvn/scarts/scarts/trunk

Subversion Repositories scarts

[/] [scarts/] [trunk/] [toolchain/] [scarts-gcc/] [gcc-4.1.1/] [libstdc++-v3/] [include/] [std/] [std_stdexcept.h] - Blame information for rev 20

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 17 jlechner
// Standard exception classes  -*- C++ -*-
2
 
3
// Copyright (C) 2001, 2002 Free Software Foundation, Inc.
4
//
5
// This file is part of the GNU ISO C++ Library.  This library is free
6
// software; you can redistribute it and/or modify it under the
7
// terms of the GNU General Public License as published by the
8
// Free Software Foundation; either version 2, or (at your option)
9
// any later version.
10
 
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
// GNU General Public License for more details.
15
 
16
// You should have received a copy of the GNU General Public License along
17
// with this library; see the file COPYING.  If not, write to the Free
18
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19
// USA.
20
 
21
// As a special exception, you may use this file as part of a free software
22
// library without restriction.  Specifically, if other files instantiate
23
// templates or use macros or inline functions from this file, or you compile
24
// this file and link it with other files to produce an executable, this
25
// file does not by itself cause the resulting executable to be covered by
26
// the GNU General Public License.  This exception does not however
27
// invalidate any other reasons why the executable file might be covered by
28
// the GNU General Public License.
29
 
30
//
31
// ISO C++ 19.1  Exception classes
32
//
33
 
34
/** @file stdexcept
35
 *  This is a Standard C++ Library header.
36
 */
37
 
38
#ifndef _GLIBCXX_STDEXCEPT
39
#define _GLIBCXX_STDEXCEPT 1
40
 
41
#pragma GCC system_header
42
 
43
#include <exception>
44
#include <string>
45
 
46
namespace std
47
{
48
  /** Logic errors represent problems in the internal logic of a program;
49
   *  in theory, these are preventable, and even detectable before the
50
   *  program runs (e.g., violations of class invariants).
51
   *  @brief One of two subclasses of exception.
52
   */
53
  class logic_error : public exception
54
  {
55
    string _M_msg;
56
 
57
  public:
58
    /** Takes a character string describing the error.  */
59
    explicit
60
    logic_error(const string&  __arg);
61
 
62
    virtual
63
    ~logic_error() throw();
64
 
65
    /** Returns a C-style character string describing the general cause of
66
     *  the current error (the same string passed to the ctor).  */
67
    virtual const char*
68
    what() const throw();
69
  };
70
 
71
  /** Thrown by the library, or by you, to report domain errors (domain in
72
   *  the mathmatical sense).  */
73
  class domain_error : public logic_error
74
  {
75
  public:
76
    explicit domain_error(const string&  __arg);
77
  };
78
 
79
  /** Thrown to report invalid arguments to functions.  */
80
  class invalid_argument : public logic_error
81
  {
82
  public:
83
    explicit invalid_argument(const string&  __arg);
84
  };
85
 
86
  /** Thrown when an object is constructed that would exceed its maximum
87
   *  permitted size (e.g., a basic_string instance).  */
88
  class length_error : public logic_error
89
  {
90
  public:
91
    explicit length_error(const string&  __arg);
92
  };
93
 
94
  /** This represents an argument whose value is not within the expected
95
   *  range (e.g., boundary checks in basic_string).  */
96
  class out_of_range : public logic_error
97
  {
98
  public:
99
    explicit out_of_range(const string&  __arg);
100
  };
101
 
102
  /** Runtime errors represent problems outside the scope of a program;
103
   *  they cannot be easily predicted and can generally only be caught as
104
   *  the program executes.
105
   *  @brief One of two subclasses of exception.
106
   */
107
  class runtime_error : public exception
108
  {
109
    string _M_msg;
110
 
111
  public:
112
    /** Takes a character string describing the error.  */
113
    explicit
114
    runtime_error(const string&  __arg);
115
 
116
    virtual
117
    ~runtime_error() throw();
118
 
119
    /** Returns a C-style character string describing the general cause of
120
     *  the current error (the same string passed to the ctor).  */
121
    virtual const char*
122
    what() const throw();
123
  };
124
 
125
  /** Thrown to indicate range errors in internal computations.  */
126
  class range_error : public runtime_error
127
  {
128
  public:
129
    explicit range_error(const string&  __arg);
130
  };
131
 
132
  /** Thrown to indicate arithmetic overflow.  */
133
  class overflow_error : public runtime_error
134
  {
135
  public:
136
    explicit overflow_error(const string&  __arg);
137
  };
138
 
139
  /** Thrown to indicate arithmetic underflow.  */
140
  class underflow_error : public runtime_error
141
  {
142
  public:
143
    explicit underflow_error(const string&  __arg);
144
  };
145
} // namespace std
146
 
147
#endif /* _GLIBCXX_STDEXCEPT */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.