Java抛出异常

时间:2018-12-26 01:33:24

标签: java exception

public int[] twoSum(int[] nums, int target) {
    for (int i = 0; i < nums.length; i++) {
        for (int j = i + 1; j < nums.length; j++) {
            if (nums[j] == target - nums[i]) {
                return new int[] { i, j };
            }
        }
    }

    throw new IllegalArgumentException("No two sum solution");
}

这是LeetCode问题的代码,该代码要求返回两个索引i和j的数组,以使nums [i] + nums [j] =目标。该问题表明您可以假设会有解决方案。

我想知道为什么找不到解决方案而不是返回null,而是引发异常?不会显示给用户吗?

1 个答案:

答案 0 :(得分:0)

因为应该总是有一个解决方案,所以如果找不到解决方案,那就是意外情况,即 exception

如果您返回其他内容,则将忽略该问题并静默返回不正确的结果,这违反了该方法的约定。这是一个问题,因为呼叫者并不期望不良结果,例如null,将失败。最好在检测到异常时抛出异常,这样可以提供问题的真实原因。