Java 加入catch块是一种良好的编码实践吗?
我在做一些与服务相关的工作。下面的代码段有效吗Java 加入catch块是一种良好的编码实践吗?,java,try-catch,Java,Try Catch,我在做一些与服务相关的工作。下面的代码段有效吗 try { //some code here } catch (ServiceException e) { throw new ServiceException("Error!!!"); } 我正在捕获ServiceException并抛出相同的异常。 这是一个好的实践吗?在catch部分中,您实际上捕获了代码执行期间发生的主要异常。然后从中抛出自定义/用户可读的异常。这是一个好的
try {
//some code here
} catch (ServiceException e) {
throw new ServiceException("Error!!!");
}
我正在捕获ServiceException并抛出相同的异常。
这是一个好的实践吗?在catch部分中,您实际上捕获了代码执行期间发生的主要异常。然后从中抛出自定义/用户可读的异常。这是一个好的实践。不是一个好的实践。因为很难找到问题的根源你不确定你写的是好是坏。在这种情况下,我会记录一些我计划使用的工具,在本例中是Java的异常机制,然后我会开始问问题:
投接球挡是很好的练习。忽略原始异常是有问题的做法。“我捕获ServiceException并抛出相同的异常。”你抛出相同类型的异常,不同的异常。我看到Catch中的警告抛出可以忽略IntelljCatch中的Catch异常,并在该块中再次抛出该异常不是一个好的做法,相反,您应该将其更改为某个自定义异常或执行其他操作operation@srp321 “捕获异常并在该块中再次抛出该异常不是一个好的做法有时,您需要在catch块中执行一些清理,然后重新引发异常。这是完全可以的:你不需要对原始异常做任何更改,你只是在它呼啸而过时做一些事情。从开发人员的角度来看,你可以打印堆栈跟踪,但你是否建议他将实际异常传递给最终用户??例如,如果有空指针异常,那么您是否直接在前端显示此错误??或者你会抛出一些有意义的错误?欢迎来到堆栈溢出。。。