设计一个异常类Exception,在此基础上派生一个OutOfMemory类响应内存不住,一个RangeError类响应输入的数不在制定范围内,实现并测试这几个类。
注意:因内存不足服务器不便于测试,故本题提交答案只测试RangeError类。
【输入形式】
正常的输入输出(数字前为提示文字):
Input n(1<=n<=100):88
【输出形式】
n:88
有异常的输入输出(数字前为提示文字):
Input n(1<=n<=100):-5
Exception:Range Error!
【样例输入】
Input n(1<=n<=100):-5
【样例输出】
Exception:Range Error!
#include <iostream>
using namespace std;
class Exception
{
public:
virtual void showMessage() = 0;
};
class OutofMemory :public Exception {
public:
OutofMemory() {}
~OutofMemory() {}
virtual void showMessage();
};
void OutofMemory::showMessage() {
cout << "Out of Memory!" << endl;
}
class RangeError :public Exception {
public:
RangeError(unsigned long number) { BadNum = number; }
~RangeError() {}
virtual void showMessage();
virtual unsigned long GetNumber() {
return BadNum;
}
virtual void SetNumber(unsigned long number) {
BadNum = number;
}
private:
unsigned long BadNum;
};
void RangeError::showMessage()
{
cout << "Exception:Range Error!";
}
int main()
{
try
{
int n;
cout << "Input n(1<=n<=100):";
cin >> n;
if (n < 1 || n>100)
throw RangeError(n);
cout << "n:" << n << endl;
}
catch (Exception& e)
{
e.showMessage();
}
}