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

java 异常-运行时异常

时间:2016-05-12 16:09:22      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:

/*
Exception中有一个特殊的子类异常RunTimeException运行时异常。
如果在函数内容抛出该异常,函数上可以不用声明,编译一样通过。
如果在函数上声明了该异常。嗲用着可以不要进行处理。编译一样通过。

之所以不用在函数声明,是因为不需要让调用者处理。
当该异常发生,希望程序停止。因为在运行时,出现了无法继续运算的情况,希望停止程序后,对代码进行修改。

自定义异常时,如该异常的发生,无法再继续进行运算,就让自定义异常继承RunTimeException。运行时异常,会引发程序停止。

所以在自定义异常时,要么继承RuntimeException,要么继承Exception。

总结:
对于异常分两种情况:
1,编译时被检测的异常:(针对可以处理的异常)即非运行时异常,在编译时就会检测出其异常。
这时不仅要在函数上进行声明(告诉调用者此函数会出现异常,让调用者抛出或解决此异常),
而且还要在调用该函数的函数内部做出相应的处理动作,要么也在函数上抛出,要么try...catch捕获异常。
2,编译时不被检测的异常:(针对无法进行处理的异常,只能让程序停下来,并且修改代码才能解决的异常)(运行时异常。RuntimeException及其子类。)

*/
class FuShuException extends RuntimeException
{
	FuShuException(String msg)
	{
		super(msg);
	}
}
class Demo
{
	int div(int a,int b)// throws ArithmeticException  //当有函数调用div()函数时,要么继续向上抛出异常,即抛给虚拟机。要么捕获异常,对异常进行处理。
	{                                                  //而继承了RuntimeException运行时异常的异常不用在函数上声明,也能编译通过,这是运行时异常的特点.
		if(b==0)
			throw new ArithmeticException();
		return a/b;
	}
}
class ExceptionDemo2 
{
	public static void main(String[] args) //throws ArithmeticException  ——此做法是将函数抛出的异常继续抛出,抛给虚拟机进行处理。
	{
		Demo d=new Demo();
		/*
		try
		{
			int x=d.div(4,0);
			System.out.println("x="+x);
		}
		catch (ArithmeticException e)//捕获函数抛出的异常并对异常进行处理。
		{
			System.out.println(e.toString());
		}
		*/
		int x=d.div(4,0);
		System.out.println("x="+x);
		System.out.println("Hello World!");
	}
}

java 异常-运行时异常

标签:

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

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