请问大家一个异常处理的问题,异常该怎么处理比较好啊

我看很多程序在catch到checked异常后,都用unchecked异常包装下再次抛出,比如
try {
...
} catch (SQLException) {
throw new RuntimeException(e);
}
我不知道这样设计有什么好处,这样抛出去后,调用者不是也不知道该如何处理吗,那要抛出去干嘛呢
谢谢,请大家详细的讲解下异常处理的比较好的方案好吗,谢谢,希望多说点

1个回答

[color=blue][b] 包装成Unchecked的异常,然后抛出,这样做后面的操作不用再捕获异常了。常用于后面的操作对前面的成功或者失败,虽然很关心,但是不知道具体如何处理。

上面那个例子,应该这样:[/b]
[/color]
[code="java"]try {
...
} catch (SQLException)
// 回滚操作
throw new RuntimeException(e);
} [/code]
[b]
[color=blue]该操作保证了数据库中数据的一致性。当操作发生错误时,很可能整个线程就结束了。[/color]

对于异常的处理,要根据实际的需要:
[color=blue]
一般情况下,要么返回个true或者false给上层调用者,要么抛出一个检查的异常给上层,使得上层可以做出正确的决策。比如DAO层,一般要在异常后,进行回滚,然后再抛出一个异常,然后Service层知道有异常发生。

如果上层对下层的结果不敏感,则可以隐藏掉异常,即catch之后,不做任何处理。

如果上层对下层的结果虽然敏感,但是又不知道怎么处理,那么就包装成Unchecked的异常,然后抛出。这样,整个线程,就会终止(因为不知道怎么处理,所以就留给JVM处理了)[/color][/b]

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问