多态和异常处理的完美结合

#include<iostream>
using namespace std;

class MyArray
{
public:
	MyArray(int m_len);
	~MyArray();
public:
	class eSize
	{
	public:
		eSize(int len)
		{
			m_len11 = len;
		}
		virtual void printErr()
		{
			;
		}
	protected:
		int m_len11;
	};
	class eNegative :public eSize
	{
	public:
		eNegative(int len):eSize(len)
		{
			m_len11 = len;
		}
		virtual void printErr()
		{
			;
		}
	};
	class eZero:public eSize
	{
	public:
		eZero(int len):eSize(len)
		{
			m_len11 = len;
		}
		virtual void printErr()
		{
			;
		}
	};
	class eTooBig :public eSize
	{
	public:
		eTooBig(int len) :eSize(len)
		{
			m_len11 = len;
		}
		virtual void printErr()
		{
			;
		}

	};
	class eTooSmall :public eSize
	{
	public:
		eTooSmall(int len) :eSize(len)
		{
			m_len11 = len;
		}
		virtual void printErr()
		{
			;
		}

	};
protected:
private:
	int m_len;
	int *MySpace;

};

MyArray::MyArray(int m_len)
{
	this->m_len = m_len;

	if (m_len == 0)
		throw eZero(m_len);
	if (m_len <= 0)
		throw eNegative(m_len);
	if (m_len >= 1000)
		throw eTooBig(m_len);
	if (m_len <= 10)
		throw eTooSmall(m_len);
}
MyArray:: ~MyArray()
{
	if (MySpace != NULL)
	{
		delete [] MySpace;
		MySpace = NULL;
		m_len = 0;
	}
}
int main()
{
	try
	{
		MyArray a(-5);

	}
	catch (MyArray::eSize &e)
	{
		//cout <<  "len的大小: " << e.eSize();
		e.printErr();
	}
	catch (...)
	{
	}
		cout << "hello..." << endl;
	system("pause");
	return 0;
}

  

时间: 2024-10-31 01:36:58

多态和异常处理的完美结合的相关文章

多态与异常处理

多态与异常处理 动手动脑1 运行结果截图 动手动脑2 运行结果截图 动手动脑3 Finally语句一定会执行,运行截图如下

Java语言中的----多态和异常处理

day13 Java语言中的----多态和异常处理 一.概述: 学习Java语言就要理解Java中的面向对象的四大特征:分别是封装.抽象.继承.多态.前面三个我们已经学完了,下面我们来学一下多态.什么是多态?不明思议就是具有两种形态性,一个方法可以定义两种形态,这就是方法的多态性.同时我们还会学习到什么是方法重载.和方法签名. 异常处理就是在编译的时候需要我们手动的去处理一下编译都不能够通过的程序.使用try {} catch{}结构就可以处理异常. 二.多态: 1.所有类的基类是object,

多态与异常处理 课后题

一.怎样判断对象是否可以转换? 程序截图: 结果截图: 二.类型转换 实验截图: 结论:子类可直接赋给基类(“基类变量=子类对象”):基类的引用类型要传递给子类必须通过强制转换(“子类变量=(子类名)基类对象”):子类之间不可以进行转换. 三.变态类 程序截图: 原因及结论: 当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的“真实”类型所决定,这就是说:对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法. 这个特性实际上就是面向

7多态与异常处理的课上作业

1.怎样判断对象是否可以转换?可以使用instanceof运算符判断一个对象是否可以转换为指定的类型: Object obj="Hello"; if(obj instanceof String) System.out.println("obj对象可以被转换为字符串"); (1)下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d;         //编译正确,因为子类对象可以直接赋给基类变量. d=m;        //编译错误,基类对

多态与异常处理动手动脑

1.编写一个程序,此程序在运行时要求用户输入一个 整数,代表某门课的考试成绩,程序接着给出“不及格”.“及格”.“中”.“良”.“优”的结论.要求程序必须具备足够的健壮性,不管用户输入什 么样的内容,都不会崩溃. import java.util.Scanner; public class CourseEvaluation { public static void main(String[] args) throws Exception {//抛出异常信息 int n = 0; while(n!

08 多态与异常处理

课后作业一:接口多态:使用接口代替抽象基类一.源代码package zoo4; import java.util.Vector; public class Zoo2 { public static void main(String args[]) { Feeder f = new Feeder("小李"); Vector<Animal> ans = new Vector<Animal>();//可随时向其中加入或移除对象 //饲养员小李喂养一只狮子 ans.ad

动手动脑之多态与异常处理

动手实验一:下列语句哪一个将引起编译错误?为什么?哪一个会引起运行时错误?为什么? m=d; d=m; d=(Dog)m; d=c; c=(Cat)m; 先进行自我判断,得出结论后,运行TestCast.java实例代码,看看你的判断是否正确: java中基类对象不能当做子类对象使用,需要用强制转换来实现,子类对象变量=(子类名)基类对象名:错误的代码是d=m; d=c; 错误原因:类型不匹配:不能从 Mammal 转换为 Dog. 动手实验二:运行以下测试代码 上边的程序运行结果是什么?.你如

JAVA多态与异常处理课后作业

1.动手动脑:请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识 import javax.swing.*; class AboutException { public static void main(String[] a) { int i=1, j=0, k; k=i/j; try { k = i/j;    // Causes division-by-zero exception //throw new Exception(

多态与异常处理(课后作业)

1.finally语句块一定会执行吗? 请通过 SystemExitAndFinally.java示例程序回答上述问题 代码: public class SystemExitAndFinally { public static void main(String[] args) { try{ System.out.println("in main"); throw new Exception("Exception is thrown in main"); //Syst