java中的自定义异常 在JAVA中捕获异常后throw自定义异常是不优雅的吗?
在JAVA中捕获异常后throw自定义异常是不优雅的吗?事实上,这种方法在很多框架中都有使用1。Rethrow自定义异常,用于更好地隔离异常,识别异常类型、ID、自定义消息和日志2。对第三方库的异常进
在JAVA中捕获异常后throw自定义异常是不优雅的吗?
事实上,这种方法在很多框架中都有使用
1。Rethrow
自定义异常,用于更好地隔离异常,识别异常类型、ID、自定义消息和日志
2。对第三方库的异常进行打包和抽象,以保持与框架异常定义的一致性,方便框架处理不同的异常
3。Restful在控制层有两种异常:一种是预期的,另一种是可预测的。这种异常需要捕获并“尝试修复”。例如,在查询用户信息RPC的过程中,存在异常,包括500ah和404ah。对于客户端,基本上不需要重试,这可以通过一个明确的错误代码来通知。相反,在超时的情况下,可以通知客户端稍后再试,不同的错误代码可以引导客户端进行不同的操作。另一种情况是控制层本身不考虑。在这种情况下,盲目的尝试/捕捉没有多大意义。它通常在框架级进行统一处理,包括记录异常信息和优雅的返回失败。
最后,对于try/catch的使用,我们并不意味着我们看不到异常,但我们更多地考虑捕获后我可以做什么,以及我是否可以尝试解决此问题。如果没有,我们可以把它扔到上层,记录并报警。如果我们不把这个问题想清楚,就很容易形成一个禁忌(吞下例外)。
java异常从业务层集中抛出,是不是每个控制层方法都要trycatch?
例如,系统本身的异常(如数组越界)由系统直接捕获并报告给您。如果是用户定义的异常,比如用户登录时密码错误,这里的操作没有错误,但是要将错误信息反馈给用户,可以抛出异常,然后提示用户密码错误。最简单的方法是抛出异常并捕获它。您可以在任何地方报告异常,然后返回相应的提示。也就是说,大多数自定义异常都是在程序员选择的地方抛出的