具有消息格式参数的可抛出构造函数

时间:2015-11-26 12:45:23

标签: java exception

有没有理由Throwable类没有带参数的构造函数来格式化消息字符串?

我相信像这样的构造函数可以实现更加干净和优雅的异常处理。

throw new Exception(String.format("Illegal value. Must be between %s and %s", min, max));

恕我直言会这样看起来好多了:

throw new Exception("Illegal value. Must be between {} and {}", min, max);

在中型/大型应用程序中,这可以节省大量的打字并提高可读性。

我想知道为什么Sun / Oracle还没有完成这一改变。我怎样才能开一张"票#34;到Oracle分析我的建议?

1 个答案:

答案 0 :(得分:3)

我同意可能有一些更好的构造函数用于异常类型。

然而,自己编写辅助方法很容易。

public static String outOfBoundsMessage(int min, int max, int actualValuePassed) {
    return String.format("Illegal value. %s is not between %s and %s", actualValuePassed, min, max);
}

然后你可以做

throw new Exception(outOfBoundsMessage(0, 10, 15));