java 不try_java 什么异常不用try和throws

只要继承了RuntimeException(也就是传说中的运行时异常) 这个异常类就不用写try catch 和 throws。程序会直接停止运行,然后打印出这个异常。

博主java基础弱,今天写一个链表类。在写到返回第index元素的时候发现,index可能会超过链表长度,也就是一个错误。于是就想抛出一个异常,但是博主发现如果我如果throw一个异常的时候我必须try catch。博主本来想如果超过了就直接退出,因为博主感觉不能解决这个异常(但是博主就蠢蠢的当时没有想到可以在catch地方直接退出程序)然后就想如果throws向上抛出异常直到抛给jvm停止运行这样好麻烦的啊(也就以为只要一直向上抛出,一直向上抛出)!!然后我就想那ArrayList.add()必然会碰到和我一样的错误,但是没有要我们抛出异常什么的,于是就去看了看ArrayList的源码,发现他throw一个异常后,没有throws,没有try,我当时就震惊啦。然后我又看了它那个异常的源码,原来继承的是RuntimeExcepthion(运行时异常)。

然后up很高兴觉得解决了天大的问题,然后我突然想到以前try catch也可以直接退出程序,然后我才知道在catch中写上e.printStackTrace();也可以直接退出循环,真的是被博主自己的智商蠢哭- -;

也就是下面这段代码:

public class TestClass {

public static void main(String[] args) {

// TODO Auto-generated method stub

fun(4);

}

private static void fun(int i){

if(i > 0)

try {

throw new Exception("测试");

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

这是ArrayList中Add调用坚持是否越界的方法,throw了一个继承了RuntimeException的异常,不用throws也不用try catch。

下面是截取的api的源码

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值