关于Java异常捕获的问题

发布于 2022-09-03 12:57:56 字数 814 浏览 29 评论 0

如果捕获异常没有专门的处理,只是为了记录日志,那么异常究竟是这样

public void xxx() {
    try {
        ...
        ...
        ...
    } catch() {
        ...
    }
}

捕获好还是这样

public void xxx() {
    try {
        ...
    } catch() {
        ...
    }
    try {
        ...
    } catch() {
        ...
    }
    try {
        ...
    } catch() {
        ...
    }
}

捕获好,另外,是每一种异常单独捕获

public void xxx() {
    try {
        ...
        ...
        ...
    } catch(aaException e) {
        ...
    } catch(bbException e) {
        ...
    } catch(Exception e) {
        ...
    }
}

好,还是全部都用Exception捕获

public void xxx() {
    try {
        ...
        ...
        ...
    } catch(Exception e) {
        ...
    }
}

好?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

一片旧的回忆 2022-09-10 12:57:56

比较优雅的方式是通过Aop去处理,这样就不用在业务代码里写重复的try,catch

孤檠 2022-09-10 12:57:56

用Exception好

土豪 2022-09-10 12:57:56

只是为了记日志,最后一种就能够说明问题所在了。

享受孤独 2022-09-10 12:57:56

记录日志就没必要细分了,打印堆栈信息一目了然

迷爱 2022-09-10 12:57:56

这得根据场景来决定:第三种情况,不同异常分开捕捉,是为了细粒度地处理捕获到的异常,比如捕捉到了缓存异常,进行db切换,捕捉到了IO异常,进行补救等;第四种是包一个Exception,总的处理一次,但是会丢失一些具体的信息
我的理解,分这么多异常类型可以认为是switch-case的一种延伸

挽你眉间 2022-09-10 12:57:56

这个要看情况的,如果自己不需要对异常进行处理,那就直接低层补货exception就可以,如果需要处理就catch补货一下处理。例如异常自己定义提示信息。

海拔太高太耀眼 2022-09-10 12:57:56

把你需要的关注的异常捕获就好了,其他的异常可能用Exception来捕获。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文