关于Java异常捕获的问题

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


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) {

        ...

    }

}

好?


皈依舞
浏览 423回答 6
6回答

慕婉清6462132

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

胡说叔叔

用Exception好

守着一只汪

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

holdtom

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

慕妹3146593

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

侃侃无极

这个要看情况的,如果自己不需要对异常进行处理,那就直接低层补货exception就可以,如果需要处理就catch补货一下处理。例如异常自己定义提示信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java