关于抛出异常,但是实际却不是我们想要的那个
- 在进行开发的时候遇见一个怪事,就是我明明抛出了异常,但是收到的却不是我抛出的那个!
- 最后发现原来我是抛出之后进行了捕捉!
- 原本是这样
if(){
//省略
}else {
//抛出了一个异常
throw
}
- 但是我在外层有了一个捕捉
try {
//一堆别的代码...
//....
if(){
//省略
}else {
//抛出了一个异常
throw
}
} catch (Execption e) {
//又抛出异常
throw
}
- 因为我在else哪里抛出,但是我又已经在此之前进行了捕捉,所以就导致了,我抛出之后被抓了,然后再抛出去,但是我想要的并不一样…
- 于是改成了这样
try {
//一堆别的代码...
//....
} catch (Execption e) {
//又抛出异常
throw
}
if(){
//省略
}else {
//抛出了一个异常
throw
}