Java 异常

异常

  • 异常是在Java程序的运行期出现的错误。
  • 观察错误的名字和行号最重要。
public class Test
{
	public static void main(String args[])
	{
		int arr [] = {1,2,3};
		System.out.println(arr[4]); //尝试访问越界
	}
}
结果:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
	at test.Test.main(Test.java:7)

  • Java程序的执行过程中如果出现异常事件,可以生成一个异常类对象(发生什么异常,就生成什么样的异常对象),该对象封装了异常事件的信息并将被提交给Java运行时系统,这个过程叫做抛出异常。默认处理方式是将异常信息打印。

  • 如果想自己处理异常,就要在抛给运行时系统之前,把异常抓住,做出相应的处理就可以了。

  • 当Java运行时系统接收到异常对象时,会寻找处理这种异常的代码(catch这种异常的代码)交给其处理,如果没有catch语句,就会默认处理。这一过程称作捕获异常。

  • 没有try语句就没有catch语句,try语句里面写的有可能产生某种异常的语句。catch里面写的是当这些语句发生异常时该怎么办。
public class Test
{
	public static void main(String args[])
	{
	    try     //尝试大括号的语句
	    {
	        System.out.println(2/0);   //除0异常
	    }
	    catch(ArithmeticException ae)   //如果抓住ArithmeticException类异常,运行时系统会自动填充ae对象
	    {
	        System.out.println("出错!");
	    }
	}
}

有些异常可以不用try,catch来捕捉比如RuntimeException,但是其他的异常必须要catch。

  • try代码段后面可以跟多个catch代码段
  • 每个catch代码段声明其能处理一种特定类型的异常,并提供处理方法。
  • 当异常发生时,程序会终止当前的流程,根据获取异常的类型去执行相应的catch代码段,如果没有异常产生,跳过catch代码段继续执行。
  • finally段的代码无论是否发生异常都有执行。
原文地址:https://www.cnblogs.com/031602523liu/p/8654199.html