-
Notifications
You must be signed in to change notification settings - Fork 0
/
Exception.h
78 lines (64 loc) · 2.03 KB
/
Exception.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/*-------------------------------------------------------------------------*
*--- ---*
*--- Exception.h ---*
*--- ---*
*--- This file declares a base class and derived classes for ---*
*--- Python exceptions. ---*
*--- ---*
*--- ---- ---- ---- ---- ---- ---- ---- ---- ---*
*--- ---*
*--- Version 1a 2018 May 15 Joseph Phillips ---*
*--- ---*
*-------------------------------------------------------------------------*/
class Exception
{
// I. Member vars:
// PURPOSE: To hold a description of the problem.
std::string description_;
// II. Disallowed auto-generated methods:
// No default constructor:
Exception ();
// No copy assignment op:
protected :
// III. Protected methods:
public :
// IV. Construtor(s), assignment op(s), factory(s) and destructor:
// PURPOSE: To create a new Exception instance that describes a problem
// with text 'newDescription'. No return value.
Exception (const std::string& newDescription
) :
description_(newDescription)
{ }
// PURPOSE: To make '*this' a copy of 'source'. No return value.
Exception (const Exception& source
) :
description_(source.getDescription())
{ }
// PURPOSE: To release the resources of '*this', make '*this' a copy of
// 'source', and to return a reference to '*this':
Exception& operator= (const Exception& source
)
{
// I. Application validity check:
if (this == &source)
return(*this);
// II. Release resources:
// III. Copy '*this':
description_ = source.getDescription();
// IV. Finished:
return(*this);
}
// PURPOSE: To release the resources of '*this'. No parameters. No return
// value.
virtual
~Exception ()
{ }
// V. Accessors:
// PURPOSE: To hold a description of the problem.
const std::string&
getDescription ()
const
{ return(description_); }
// VI. Mutators:
// VII. Methods that do main and misc work of class:
};