在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请阅读: