java中的“异常”

版权声明:欢迎交流,转载请注明出处。 https://blog.csdn.net/u013034226/article/details/46702223

异常:Java运行期间发生的问题就是异常,另外,Java中运行时发生的除了异常Exception还有错误Error。

异常:可以有针对性的处理方式;错误:通常发生后不会有针对性的处理方式,往往是系统级别的问题,无法针对处理,只能修正代码。

举个例子:对给定的数组同过给定的交表获取元素,

class Demo
{
	/*
	对给定的数组通过给定的角标获取元素。
	*/
	int getElement(int[] arr,int index)
	{
		/*
		它所提供的信息不够给力。想要更清晰,需要自己写。
		它的抛出不满足我们的要求。准备自己抛。
		*/
		if(arr==null)
		{
			throw new NullPointerException("arr指向的数组不存在");
		}

		if(index<0 || index>=arr.length)
		{
			//该条件如果满足,功能已经无法继续运算。这时 就必须结束功能,并将问题告知给调用者。这时就需要通过异常来解决。
			//怎么用呢?
			//1,创建一个异常对象。封装一些提示信息(自定义)。
			//2,需要将这个对象告知给调用者。怎么告知呢?怎么将这个对象传递到调用者处呢?通过关键字throw就可以完成。 throw 异常对象;
			//3,throw用在函数内,抛出异常对象,并可以结束函数。
			throw new ArrayIndexOutOfBoundsException("错误的角标,"+index+"索引在数组中不存在");
		}
自定义异常:

上边的Exception中的异常不好认,准备定义一个符合我的程序要求的问题名称以及问题的信息,其实异常就是讲问题,封装成了对象。

查阅API发现:

Throwable

|--Error

|--Exception

Throwable是异常和错误的父类,自定义异常被抛出,必须是继承 Throwable或者Throwable的子类,该对象才可以被Throw抛出。

声明和捕获:

 声明:将问题标识出来,报告给调用者。
如果函数内通过throw抛出了编译时异常,而捕获,那么必须通过throws进行声明,让调用者去处理。

捕获:Java中对异常有针对性的语句进行捕获。
语句:
try
{
//需要被检测的语句。
}
catch(异常类 变量)//参数。
{
//异常的处理语句。
}
finally
{
//一定会被执行的语句。
}

throw和throws的区别?

1,throw用在函数内。
throws用在函数上。
2,thorw抛出的是异常对象。
throws用于进行异常类的声明,后面异常类可以有多个,用逗号隔开。

class Demo
{
	void show()throws Exception
	{
		throw new Exception();
	}
}

class  
{
	public static void main(String[] args) 
	{
		System.out.println("Hello World!");
	}
}


猜你喜欢

转载自blog.csdn.net/u013034226/article/details/46702223