Exception异常

今天突发奇想想要总结一下异常类的相关问题,哎,没办法,个人理解仅供参考啊!!!!

异常嘛,大家平时代码的时候肯定能遇到对不对,像是啥索引越界,空指针啊等等异常,但可能不是太明白啥意思,大牛就不要看了,那我来稍微讲两句,就两句!!

异常机制是啥:

程序出现了问题不会运行下去吧,总需要退出吧,这玩意能让程序安全的退出,晓得吧。

分类

java对异常进行了分类,不同的异常,由不同的java类,Throwable 很熟悉吧,对!他是所有异常类的根类,然后呢,他又有两个子类分别是ERROR EXCEPTION,接下来,我会对这两个类更加细分的解释,上图!!!

error: 这是啥呢? 欸,这可不是你的代码操作错误,都怪JVM,不给他资源,崩溃了,不干了

举个例子:没有内存资源去执行操作,出了个OutOfMemoryError 错误。JVM终止了线程。等等啊这已经不是我那半吊子代码能解决的事情了

Exception:这是啥,程序本身就能够处理的异常,是异常类的父类。不多说,接下去分类

RuntimeException:运行时异常,程序运行后报出了异常,怎么说呢,楼主写的啥代码明明索引到3,你非要写个4,咋整越界了呗,说白了,代码逻辑垃圾。

 

欸嘿!异常,索引越界,没错,执行完了,出现的异常,还有很多不说了。

CheckedException:检查期异常,编译的时候就要进行处理,不然无法通过编译,要用try  catch 捕获,或者Throws进行声明异常

这是个啥啊!!!,刚开始我也不明白,很笼统的概念,为啥没出错他也报啊,

上图!!以输入流实例:

 是不是很迷!!哎,直到我整了自定义异常才明白,才知道看源码,

 ctrl+单击,发现了啥,没错他的构造方法中都抛出了异常,所以啊,你要么抛出去,知道是这种类型的异常,要么去捕获异常,你不抛不捕获,编译都过不了欸!这是方法声明中已经定义好了,别去纠结。        

就是说这个地方啊可能出现文件找不到的异常,你要处理一下啊,要么声明异常类型,要么try一下不然出现问题你都不知道是啥异常,详细的下面说吧

try...catch and  Throws:他是干啥的,上代码:这个图我并没有这个文件哈,所以会报异常

看出了啥没有,,,对嘛,第一个程序执行完了,第二个直接给你终止了,为啥??

好说!先说原理:try...catch...finally 的执行流程先去 try中,里面有问题嘛,有,跳到catch 来捕获异常,我那个是e.printStcktrace() ,打印异常信息,再去执行finally,再去执行其他的。这里就是catch里面的进行异常信息的处理。我处理了不就继续运行了。不过不要省略catch的内容,不然你不知道出现了什么异常,对程序不好

第二个用了啥,Throws进行异常的抛出,前面的源码也看了,他也抛了,抛给谁了,我!!彷佛接盘侠,为啥抛给我?因为我调用了啊,总说向上抛出就是这个意思吧!谁调用抛给谁,欸,那怎么办,处理嘛?不行真男人谁做接盘侠,他抛我也抛,我不管谁处理,先抛了再说。好了!!!

关键的时候到了,代码好的还行,出异常了咋办,嘿嘿,没人处理不就停止程序了嘛,再给你报出异常

Throw:

Throws上面已经说过了,现在再给你整个相似的,Throw, what is this!!!!好奇,这是??
 

来上解释:

区别:

throws:接在方法后面,意思是抛出异常的类型,可能会出现这样的问题,我提前抛出

throw:用在方法体内,意思是一定抛出了异常对象,抛出后,后面的程序就不会执行了

好了,两句说没了,不过关于JVM如何接收并处理异常我并不是很能够了解,而且上述文章也是我突然想起总结的有什么错误希望可以指点一下,我觉得大牛得意见对我很重要

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值