Android应用编程基础第20篇:Java异常处理实例分析

createh52个月前 (02-01)技术教程23

上一篇我们讲了Java语言中的异常处理机制,包括基本概念和整体的处理流程,以及try、catch、finally关键字的使用。本篇我们将通过实例来具体讲解。

让我们先看下面这个异常的实例:

01public class TestException_1

02{

03public static void main(String args[])

04{

05int array[]=new int[5];// 容许 5 个元素

06array [10]=7;// 下标值超出所容许的范围

07System.out.println("main()方法结束!");

08}

09}

上面的代码在编译的时候不会出现任何错误,但是在运行时执行到第6行就会产生错误,并输出以下信息:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10

at TestException_1.main(TestException_1.java:6)

错误的原因是数组下标超出了最大允许的范围。Java 发现这个错误之后,便由系统抛出“
ArrayIndexOutOfBoundsException”这个种类的异常,用来表示错误的原因。如果没有相应的处理异常的程序代码,Java 的默认异常处理机制会先抛出异常,然后终止程序运行。

程序在第6行抛出异常后变停止了,根本不会运行到第7行。如果我们想要程序能运行到最后,就需要在抛出异常的位置加上异常处理的代码。因此我们将TestException_1做一些修改,请看TestException_2。

01public class TestException_2

02{

03public static void main(String args[])

04{

05try//try代码块

06{

07int array[]=new int[5];

08array [10]=7;//出现异常,数组越界

09}

10catch(ArrayIndexOutOfBoundsException e)

11{

12System.out.println("数组超出绑定范围!");

13}

14finally// finally代码块的程序代码一定会执行

15{

16System.out.println("这里一定会被执行!");

17}

18System.out.println("main()方法结束!");

19}

20}

输出结果:

数组超出绑定范围!

这里一定会被执行!

main()方法结束!

程序说明:

1、第 5~9 行的 try 代码块是用来检查是否会有异常发生。

2、当try代码块中有异常发生,且抛出的异常属于
ArrayIndexOutOfBoundsException 类时,则会运行第 10~13 行的catch代码块。

3、 程序第 7 行声明一个array 的整型数组,并开辟了 5 个数据空间。

4、 程序第 8 行为数组中的第 10 个元素赋值,此时已经超出了该数组本身的范围(就是我们俗称的数组越界),所以会出现异常,抛出的是
ArrayIndexOutOfBoundsException类的异常。发生异常之后,程序语句转到 catch 语句中去处理,输出“数组超出绑定范围!”字符串。

5、异常处理完后程序走进 finally代码块,输出“这里一定会被执行!”字符串。

6、直到最后方法结束,输出“main()方法结束!”字符串。

由TestException_2可看出,通过异常的机制,即使程序运行时发生问题,只要能捕捉到异常,程序便能顺利地运行到最后。

异常处理的方法可以看下图:

图1 异常处理的方法

从图1中可以看到TestException_1和TestException_2是两种不同的异常处理的方法。

1.TestException_1是Java默认的异常处理方法,在发生异常时会抛出异常并输出异常信息,然后程序便会终止运行。

2. TestException_2是通过自行编写try-catch-finally块来捕捉异常并输出提示信息。在实际使用中,我们可以在catch代码块中加入一些自定义的提示信息,方便后期定位错误修复错误。

最后让我们用一个段子结束今天的文章。

“世界上最真情的相依,是你在try我在catch,无论你发神马脾气,我都默默承受,静静处理。”

感谢大家!

----------

微价值网(公号vjiazhi),关注移动互联网,以及APP产品/技术/推广,提供最有价值的干货文章。

相关文章

详解Java异常(Exception)处理及常见异常

很多事件并非总是按照人们自己设计意愿顺利发展的,经常出现这样那样的异常情况。例如: 你计划周末郊游,计划从家里出发→到达目的→游泳→烧烤→回家。但天有不测风云,当你准备烧烤时候突然天降大雨,只能终止郊...

5分钟课堂:Java异常处理(java异常处理方法及流程)

异常是在程序执行过程中发生的意外情况或错误。它表示程序在运行时出现了超出正常流程的状况。Java中的异常处理机制用来处理程序运行时发生的各种非正常情况(即异常)。异常机制优点使用异常机制分离了代码中的...

Java面试篇基础部分-Java中的异常以及异常处理

在实际的开发过程中,往往会遇到各种各样的编程异常,如何处理这些异常,直接会影响到整个程序和系统的稳定性,如果不能在合适的地方抛出合适的异常或者是对异常进行捕获。那么就会影响到整个程序的运行。所以如何处...

异常处理,JAVA中异常处理的介绍(java中异常处理机制是怎样的)

异常处理的介绍在Java程序的运行过程中,如果Java虚拟机检测出一个无法执行的操作,就会产生运行时错误(runtime error)在Java中,运行时错误会作为异常来抛出。抛出的异常是一个对象,该...

关于Java Exception异常的深入用法及实例

关于Java Exception异常的深入用法及实例一、异常的概念生活中的异常:例如感冒发烧,工作时电脑蓝屏、死机等。程序中的异常:在程序运行的过程中,也会发生这种非正常状况,例如程序运行时磁盘空间不...

Java基础——如何优雅地处理异常(java中异常处理机制是怎样的)

说起优雅,不知道为什么,我脑补的场景是这样的:说起优雅的反面,不优雅,我首先想到的是这位:希望费天王还能回归赛场,伤病快点好,说回正题1 基本概括2 主要介绍2.1 异常处理机制在 Java 应用程序...