否则Java编译器会由于shouldNotThrowCheckedException()函数没有声明其可能抛出的Checked Exception⽽报错。但是如果通过
那么在调⽤该构造函数的函数中,我们需要通过try…catch…来处理该异常:
如果我们不通过try…catch…来处理该异常,那么我们就不得不在函数声明中通过throws标明该函数会抛出FileNotFoundException:⽽RuntimeException类的各个派⽣类则没有这种强制调⽤⽅对异常进⾏处理的需求。为什么这两种异常会有如此⼤的区别呢?因为
⽽在调⽤processFile()函数的代码中,软件开发⼈员可能觉得这⾥还不是处理异常FileNotFoundException的合适地点,因此他通过
在启动⼀个应⽤的时候可能会产⽣⼀个FileNotFoundException异常?是的,这很容易理解,但是到底哪⾥发⽣了异常?读取偏好⽂件的但是在⽤户那⾥看来,他曾经所设置的偏好在这次使⽤时候已经不再有效了。这是我们的程序在运⾏时所产⽣的异常情况,因此我们需要通
可以看到,此时在catch块中所抛出的ApplicationSpecificException异常中已经包含了⾜够多的信息。这样,我们的应⽤就可以通过捕获⼿⾜⽆措的API使⽤者
⽽且我们也没有办法从该函数的签名中看出到底为什么这个函数会抛出该异常,进⽽也不知道该异常是
否需要对⽤户可见。在这种情况下,很显然,这并不是⼀种好的做法。⽽这⼀切的根本原因则是没有说清楚到底为什么函数会抛出该Checked Exception。因此对于⼀个API编
反过来,如果这些都不是Checked Exception,⽽且软件开发⼈员也能保证传⼊的索引是合法的,那么代码会简化很多:
那么我们应该在什么时候使⽤Checked Exception呢?就像前⾯所说的,如果⼀个异常所表⽰的并不是代码本⾝的不⾜所导致的⾮正常状该构造函数的签名所表⽰的意义实际上是:
java怎么编写上⾯的⽰例代码中重新抛出了⼀个ApplicationSpecificException类型的异常。从它的名字就可以看出,其应该是API使⽤者在应⽤实现中
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论