Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中,将异常作为参数传递给方法是否不好_Java_Exception - Fatal编程技术网

在java中,将异常作为参数传递给方法是否不好

在java中,将异常作为参数传递给方法是否不好,java,exception,Java,Exception,我有一个方法,在服务中发生异常时应该回滚。在异常块中,回滚服务在失败时抛出异常。我创建了一个回滚服务,但我将异常作为参数传递给第二个方法。那是坏习惯吗 public static void method1() { try{ //do something that can throw exception } catch (Exception e) { method2(data, e); } } public static void me

我有一个方法,在服务中发生异常时应该回滚。在异常块中,回滚服务在失败时抛出异常。我创建了一个回滚服务,但我将异常作为参数传递给第二个方法。那是坏习惯吗

public static void method1() {
    try{
       //do something that can throw exception
    } catch (Exception e) {
         method2(data, e);
      }
}

public static void method2(String data, CustomException ce) {
    try{
     // rollback service that could fail
    } catch(Exception e) {
        log.warn("rollback failed!!!");
         ce.addSuppressed(e);
      }
 }

在一天结束时,
Exception
s是普通Java对象,添加了可以抛出的属性。如果我们拒绝将
异常
s作为参数,那么它将剥夺为
异常
s(例如,在中发现的一个概念)提供集中式处理程序方法的能力。如果我们拒绝使用
异常
s作为参数,我们很可能会违反。这两种情况都可能导致代码更难阅读和维护

此外,如果我们的方法之一接受
对象
(或
对象…
集合
,…)作为参数,我们无法防止可能将
异常
作为参数传递


总之,我看不出为什么将
异常
作为方法参数传递是一种不好的做法。

“这是一种不好的做法吗?”不。我问这个问题的唯一原因是因为有人告诉我不要这样做,并要求我把它放在需要回滚的任何地方。@manu请阅读: