Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

try住了异常为何还要throw出去? #26

Open
thinksee opened this issue Oct 30, 2020 · 3 comments
Open

try住了异常为何还要throw出去? #26

thinksee opened this issue Oct 30, 2020 · 3 comments
Labels
question Further information is requested

Comments

@thinksee
Copy link

@hutaishi
Copy link

hutaishi commented Nov 1, 2020

把异常统一封装成自定义异常RpcException,同时将真正的异常作为参数。比如redis客户端,操作的时候可能出现网络超时,这种超时统一封装为redis自定义异常。
切记不可滥用。

@Snailclimb
Copy link
Owner

之前这里有一点参考 dubbo 的做法。其实,我觉得直接将异常通过log.error打印出来就好。

image

@Snailclimb Snailclimb added the question Further information is requested label Nov 2, 2020
@Snailclimb Snailclimb reopened this Nov 2, 2020
@tcmot
Copy link

tcmot commented Jun 29, 2021

这种写法没问题的, 很多框架都这么用.但是最好的方式肯定是日志框架.

捕获的目的就是打印, 要么日志框架打印,要么system.

抛出一个new 异常 也是打印,printStackTrace().

有时候不方便引入日志框架,又不想直接system.

比如一个方法未实现逻辑,就可以直接抛出new 异常,当执行一个逻辑发生错误,也可以抛出new异常.

捕获异常后,直接抛出new异常,最终还是通过system打印的(会阻塞一下,毕竟是同步打印的,所以才会有日志框架代替,因为日志框架都支持异步).

如果不能忍受抛new异常的阻塞,那就用日志框架代替.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

4 participants