Java抛出异常[关闭]

问题描述 投票:2回答:1
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] = target。问题表明你可以假设会有一个解决方案。

我想知道为什么没有找到解决方案而不是返回null你抛出异常?不会向用户显示吗?

java exception
1个回答
0
投票

因为应该始终是一个解决方案,所以如果没有找到解决方案,那就是一个意想不到的情况,即一个例外。

如果你返回别的东西,你就会忽略这个问题并默默地返回错误的结果,违反了方法的合同。这是一个问题,因为呼叫者并不期待不好的结果,例如null,并将失败。最好在检测到异常时抛出异常,因此它可以提供问题的真正原因。

© www.soinside.com 2019 - 2024. All rights reserved.