码迷,mamicode.com
首页 > 编程语言 > 详细

java 异常二

时间:2016-05-12 20:54:21      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

在本程序中,对于除数是-1,也视为是错误的,是无法进行运算的。
那么就需要对这个问题进行自定义的描述。

当在函数内部出现了throw抛出异常对象,那么,就需要给对应的处理动作。
要么在内部try catch处理;要么在函数上声明让调用者处理。

一般情况下,函数内出现异常,函数上需要声明。

如何快速定义异常信息呢?
因为父类中已经把异常信息的操作都完成了。
所以子类只要在构造时,通过super语句将异常信息传递给父类。
那么就可以直接通过getMessage方法获取自定义异常信息了。

自定义异常:
必须是自定义类继承Exception。

继承Exception原因:
异常体系有一个特点:因为异常类和异常对象都被抛出。
他们都具备可抛性,这个可抛性是Throwable这个体系中独有特点。
只有这个体系中的类和对象才可以被throws和throw操作。

throw和throws的区别:
(1)throws使用在函数上。
     throw使用在函数内部。
(2)throws后面跟的是异常类,可以跟多个异常类,异常类之间用逗号隔开。
     throw后面的跟的是异常对象。
class FuShuException extends Exception
{
	/*private String msg;
	FuShuException(String msg)
	{
		this.msg=msg;
	}
	public String getMessage()
	{
		return msg;
	}*/
	int num;
	FuShuException()
	{
		super();//空参数的构造函数。
	}
	FuShuException(String name,int num)
	{
		super(name);//通过super语句将异常信息传递给父类
		this.num=num;
	}
	public void show()
	{
		System.out.println("除数的值:"+num);
	}
	
}

class Demo
{
	public int function(int a,int b) throws FuShuException   //这个函数有可能会出现异常,某个函数在调用该函数时需要抛出异常(throws)或对异常进行处理(try...catch)。
	{
		int[] arr=new int[a];
		if (b<0)
		{
           throw new FuShuException("除数出现了小于零的情况",b);//如果满足条件则抛出异常信息。
		}
		return a/b;
	}
}

class ExceptionClassDemo1
{
	public static void main(String args[])   //throws FuShuException   ——这是抛出异常,即编译时不会报错,在运行时虚拟机会提示异常信息。
	{
		Demo de=new Demo();
		//下面的代码对异常进行处理。
		try
		{
			int result=de.function(5,-1);
			System.out.println(result);
		}
		catch (FuShuException e)
		{
			System.out.println(e.getMessage());
			e.show();
		}
		/*
		int result=de.function(5,-1);
		System.out.println(result);
		*/
	}
}

java 异常二

标签:

原文地址:http://blog.csdn.net/iemdm1110/article/details/51356796

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!