1// Methods for Exception Support for -*- C++ -*-
2
3// Copyright (C) 1997, 1999, 2001, 2002, 2005, 2009
4// Free Software Foundation, Inc.
5//
6// This file is part of the GNU ISO C++ Library.  This library is free
7// software; you can redistribute it and/or modify it under the
8// terms of the GNU General Public License as published by the
9// Free Software Foundation; either version 3, or (at your option)
10// any later version.
11
12// This library is distributed in the hope that it will be useful,
13// but WITHOUT ANY WARRANTY; without even the implied warranty of
14// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15// GNU General Public License for more details.
16
17// Under Section 7 of GPL version 3, you are granted additional
18// permissions described in the GCC Runtime Library Exception, version
19// 3.1, as published by the Free Software Foundation.
20
21// You should have received a copy of the GNU General Public License and
22// a copy of the GCC Runtime Library Exception along with this program;
23// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
24// <http://www.gnu.org/licenses/>.
25
26//
27// ISO C++ 14882: 19.1  Exception classes
28//
29
30#include <string>
31#include <stdexcept>
32
33_GLIBCXX_BEGIN_NAMESPACE(std)
34
35  logic_error::logic_error(const string& __arg)
36  : exception(), _M_msg(__arg) { }
37
38  logic_error::~logic_error() throw() { }
39
40  const char*
41  logic_error::what() const throw()
42  { return _M_msg.c_str(); }
43
44  domain_error::domain_error(const string& __arg)
45  : logic_error(__arg) { }
46
47  invalid_argument::invalid_argument(const string& __arg)
48  : logic_error(__arg) { }
49
50  length_error::length_error(const string& __arg)
51  : logic_error(__arg) { }
52
53  out_of_range::out_of_range(const string& __arg)
54  : logic_error(__arg) { }
55
56  runtime_error::runtime_error(const string& __arg)
57  : exception(), _M_msg(__arg) { }
58
59  runtime_error::~runtime_error() throw() { }
60
61  const char*
62  runtime_error::what() const throw()
63  { return _M_msg.c_str(); }
64
65  range_error::range_error(const string& __arg)
66  : runtime_error(__arg) { }
67
68  overflow_error::overflow_error(const string& __arg)
69  : runtime_error(__arg) { }
70
71  underflow_error::underflow_error(const string& __arg)
72  : runtime_error(__arg) { }
73
74_GLIBCXX_END_NAMESPACE
75
76