J2SE总结(2)异常处理与数组

一、异常处理

1、Java异常概念:
(1)、Java异常是Java提供的用于处理程序中错误的一种机制。
(2)、所谓错误是指在程序运行过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在)。
(3)、设计良好的程序应该在异常发生时提供处理这些错误的方法,使得程序不会因为异常的发生而阻断或产生不可预见的结果。
(4)、Java程序的执行过程中如果出现异常事件,可以生成一个异常类对象,该异常对象封装了异常事件的信息并将被提交给Java运 行时系统,这个过程称为抛出(throw)异常。
(5)、当Java运行时系统接收到异常对象时,会寻找能处理这一异常的代码并把当前异常对象交给其处理,这一过程称为捕获 (catch)异常。
例:在这里插入图片描述

2、异常的分类:
(1)Error:称为错误,有Java虚拟机生成并抛出,包括动态链接失败、虚拟机错误等,程序不会对其做出处理。
(2)Exception:所有异常类的父类,其子类对应了各种各样可能出现的异常事件,一般需要用户显示的声明或捕获。
(3)RuntimeException:一类特殊的异常,如被0除,数组下标超范围等,其产生比较频繁,处理麻烦,如果显示的声明或捕获将会对程序的可读性和运行效率影响很大。因此由系统自动检测并将它们交给缺省的异常处理程序(用户可不必对其处理)。

3、finally关键字:
(1)、finally语句为异常处理提供一个统一的出口,使得在控制流程转到程序的其他部分以前,能够对程序的状态作统一的管理。
(2)、无论try所指定的程序块中是否抛出异常,finally所指定的代码都要被执行。
(3)、通常在finally语句中可以进行资源的清除工作。如:关闭打开的文件,删除临时文件…

4、异常的捕获和处理:
(1)、try语句
a、try{…}语句指定了一段代码,该段代码就是一次捕获并处理异常的范围。
b、在执行过程中,该段代码可能会产生并抛出一种或几种类型的异常对象,它后面的catch语句要分别对这些异常做相应的处理。
c、如果没有异常产生,所有的catch代码段都被略过不执行。

(2)、catch语句
        a、在catch语句块中是对异常进行处理的代码,每个try语句块可以伴随一个或多个catch语句,用于处理可能产生的不同类型的异常对象。
        b、在catch中声明的异常对象(catch(SomeException))封装了异常事件发生的信息,在catch语句块中可以使用这个对象的一些方法获取这些信息。
        c、例如:getMessage()方法,用来得到有关异常事件的信息。
                        printStackTrace()方法,用来跟踪异常事件发生时执行堆栈的内容。

(3)、

在这里插入图片描述
*** 重写方法需要抛出与原方法所抛出异常类型一致或不抛出异常。

二、数组

1、数组概述:
(1)、数组可以看成多个相同类型数据组合,对这些数据的统一管理。
(2)、数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
(3)、数组中的元素可以是任何数据类型,包括基本类型和引用类型。

2、一维数组:
(1)、一维数组的声明方式: type var[ ]; 或 type[ ] var;
(2)、Java语言中声明数组时不能指定其长度(数组中元素的个数), 例:int a[5]; //非法
(3)、Java中使用关键字new创建数组对象,格式为:数组名 = new 数组元素是类型 [数组元素的个数] 例:int[ ] s; s = new int[5];
(4)、元素为引用数据类型的数组中的每一个元素都需要实例化。

3、数组初始化:
(1)、动态初始化:数组的定义与为数组元素分配的空间和赋值的操作分开进行。
(2)、静态初始化:在定义数组的同时就为数组元素分配空间并赋值。
(3)、数组元素的默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此数组分配空间后,每个元素也被按照成员变量的规则被隐式初始化。

4、数组元素的引用:
(1)、定义并运用运算符new为之分配空间后,才可以引用数组中的每个元素,数组元素的引用方式为:
a、arrayName[index] index为数组元素下标,可以是整形常量或整形表达式。如:a[3], b[i], c[6*i].
b、数组元素下标从0开始,长度为n的数组的合法下标取值范围为 0到n-1。
(2)、每个元素都有一个属性length指明它的长度,例如:a.length的值为数组a的长度(元素个数)。

5、二维数组:
(1)、二维数组可以看成以数组为元素的数组。例如:int a[ ][ ] = {{1,2},{3,4,5,6},{7,8,9}};
(2)、Java中多维数组的声明和初始化应按高维到低维的顺序进行。例如:
int a[ ][ ] = new int[3][];
a[0] = new int[2];
a[1] = new int[4];
a[2] = new int[3];
int t1[ ][ ] = new int[ ][4]; //非法

6、数组的拷贝:
(1)、使用java.lang.System类的方法 public static void arraycopy(object src, int srcPos, object dest, int destPos, int length)
(2)、可以用于数组src从第srcPos项元素开始的length个元素拷贝到目标数组从destPos项开始的length个位置。
(3)、如果源数据数目超过目标数组边界会抛出IndexOutOfBoundsException异常。
例:在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值