可变参数+异常处理

可变参数:在参数类型后面使用…就是可变参数,这种方式是JDK1.5后出现的

如果想要在定义函数时,让函数可以接受多个参数(参数个数不明确,只有调用函数时才能明确),而且多个参数类型一致

语法:修饰符 返回值类型 方法名(参数类型… 形参名){}

作用等同于:修饰符
返回值类型 方法名(参数类型[] 形参名){}:存在的问题:调用方法时必须传递数组,而上一种方式只需要传递数据就可以了

在这里插入图片描述

总结:虽然可变参数代表的是数组,但是使用…定义的参数,在调用方法时不需要创建数组(这就是简单的地方),直接将数组中的数据作为实参进行传递

注意:如果在方法定义时,拥有多个参数,而且参数中包含可变参数,那么可变参数一定要写在参数列表的最后位置

在这里插入图片描述

集合嵌套:集合中又包含集合

举例:

ArrayList<ArrayList> list = new ….;

HashMap<String,ArrayList map = new ….;

HashMap<String,HashMap<String,Student>> map = new ….;

Java中异常体系:

Throwable:是所有错误或异常的超类
Error:错误
Exception:异常,程序在编译时,运行时发生的某种问题
RuntimeException:运行时异常,出现在运行过程中出现的异常,一旦发生就需要开发者修改源代码
NullPointException:空指针
ArrayIndexOutOfBoundsException:下标越界

异常(Exception):Java代码在程序在编译时,运行时发生的某种问题,报错都是以XXXException说明

在这里插入图片描述

会出现:
在这里插入图片描述

错误(Error):物理上的问题,磁盘,硬盘,内存….物理上问题,是没办法处理的系统级别问题,只能修改代码,报错都是以XXXError说明

在这里插入图片描述

会出现:
在这里插入图片描述

Java中异常处理:

声明异常:方法本身不处理异常,而是将方法可能出现的异常声明在方法上,让方法调用者处理

语法:

修饰符 返回值类型 方法名(参数列表) throws 异常类名1,异常类名2,….{}

public void show() throws Exception{}

捕获异常:当方法出现异常时,方法本身会直接处理

在可能出现异常的函数中,通过使用try…catch…finally结构处理异常

提示:Java中当出现异常时,程序会停止在异常出现的位置,异常之后的代码就不会执行,必须当异常被处理后才能执行

语法:

try{

//可能出现异常的代码

}catch(异常类名 自定义对象名){

//异常处理代码(异常出现时执行的代码)

}finally{

//不管是否出现异常都会执行的代码,不会因为异常的出现而发生阻塞

//实际开发中都是用于释放资源

}

说明:

Try:该代码块中编写可能出现异常的代码,try代码块必须存在而且一个结构中只能存在一个try

Catch:用于进行异常捕获,当异常发生时,会依次从上往下判断出现的异常类和哪个catch后面的类名匹配,然后才执行catch代码块的代码,catch代码块可以有0个或多个

Finally:用于编写一些特定的代码,用来保证这些代码无论异常是否发生都能执行。异常发生时,程序会发生跳转,这样可能会出现某些代码不能执行到,而finally就能解决该问题。finally代码块可以有0个或1个

Try…catch…Finally组合方式:

Ø  try…catch…finally组合:try检测异常,并将异常传递给catch处理(不管try中出现多少个异常类型,都是一种处理方式),在finally中释放资源

Ø  一个try多个catch:try检测异常,然后将异常传递给catch处理,并且对没种异常进行不同处理

try{

//检测异常

}catch(异常类名1  自定义对象名){

//对异常类1出现时的处理方式

} catch(异常类名2  自定义对象名){

//对异常类2出现时的处理方式

}……

提示:这是一种多个异常分别处理的结构,每个catch后面的异常类不能相同,如果多个异常类之间存在父子关系,那么子类必须写在上面的catch位置,父类写在下面的catch(异常类匹配是从上往下的,如果父类在上,那么会出现多个子类没法匹配成功,而是全部匹配父类)

Ø  try…finally组合:该结构没有catch效果等同于throws

try{

//检测异常

}finally{

//释放资源操作

}

总结:开发中一般都让try中的代码尽量少,catch尽量细分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值