在java中捕获异常后throw自定义异常是不优雅的吗?
事实上,这种方法在很多框架中都有使用
1。rethrow
自定义异常,用于更好地隔离异常,识别异常类型、id、自定义消息和日志
2。对第三方库的异常进行打包和抽象,以保持与框架异常定义的一致性,方便框架处理不同的异常
3。restful在控制层有两种异常:一种是预期的,另一种是可预测的。这种异常需要捕获并“尝试修复”。例如,在查询用户信息rpc的过程中,存在异常,包括500ah和404ah。对于客户端,基本上不需要重试,这可以通过一个明确的错误代码来通知。相反,在超时的情况下,可以通知客户端稍后再试,不同的错误代码可以引导客户端进行不同的操作。另一种情况是控制层本身不考虑。在这种情况下,盲目的尝试/捕捉没有多大意义。它通常在框架级进行统一处理,包括记录异常信息和优雅的返回失败。
最后,对于try/catch的使用,我们并不意味着我们看不到异常,但我们更多地考虑捕获后我可以做什么,以及我是否可以尝试解决此问题。如果没有,我们可以把它扔到上层,记录并报警。如果我们不把这个问题想清楚,就很容易形成一个禁忌(吞下例外)。
原文标题:java全局异常捕获 在JAVA中捕获异常后throw自定义异常是不优雅的吗?,如若转载,请注明出处:https://www.saibowen.com/tougao/21662.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。