抛出catch块是否是良好的编码习惯?

时间:2019-04-26 04:07:12

标签: java try-catch

我正在做一些与服务相关的操作。以下代码段有效吗?

try {
          //some code here
    } catch (ServiceException e) {
                throw new ServiceException("Error!!!");
   }

我正在捕获ServiceException并引发相同的异常。 这是个好习惯吗?

3 个答案:

答案 0 :(得分:0)

在捕获部分中,您实际上捕获了代码期间发生的主要异常。然后,您从该异常中抛出了自定义/用户可读的异常。这是一个好习惯。

答案 1 :(得分:0)

不好的做法。因为很难找到问题的起因

答案 2 :(得分:0)

您不确定所写的内容是好是坏。在这种情况下,我将对自己打算使用的工具进行一些记录,在这种情况下,将使用Java的Exception机制,然后开始提出问题

  1. 有没有原因我应该捕获 ServiceException e ,然后抛出另一个具有较少信息的相同类型。您用更少的信息创建了一个新的。字符串“错误!!” 绝对比您从原始 e.getMessage() e.getCause 等可能获得的字符串少(假设 ServiceException e 可能正在包装另一个低级异常,请向您自己介绍一下有关异常包装的信息。)
  2. 某些调用代码是否会捕获 ServiceException 并对其采取行动?检查一下您的呼叫层次结构,找到必须对 ServiceException 采取行动的地方。停在那里,然后开始再次询问。如果我在其中捕获到带有“ Error !!!” ServiceException 或原始的 ServiceException e ,这有什么区别?
  3. 我在我的代码中引发并捕获了异常,我以后是否必须以某种方式跟踪此处发生的情况?如果是,那么我还将根据情况记录一些有关发生了什么的错误,警告或信息。这样,您便可以使以后检查应用程序日志的人员的故障排除过程变得更加轻松。我还将阅读一些有关吞咽异常的信息,以及为什么这样做不好。