当前位置: 首页 > 知识库问答 >
问题:

为什么抛出一个未检查的异常会删除“缺少return语句”错误

淳于泓
2023-03-14

我对编程很陌生,所以这个问题看起来很傻。下面提到的方法有一个作为int数组的返回类型。当我们不抛出任何未经检查的异常时,它会抛出一个我理解的错误。但是为什么包含一个未检查的异常会删除那个错误呢?它仍然没有任何返回语句,不是吗?

public static 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");
    }

共有1个答案

诸葛雅达
2023-03-14

在某些情况下,您的程序永远不会到达内部的return语句。例如。如果nums长度为0,或者nums[j]==target-nums[i]从不为true。对于这些情况,方法需要返回一些东西,或者它可以抛出一个异常。对于您的用例什么是正确的行为是您自己的决定。如果没有为这种情况定义任何内容,而您的IDE允许您通过它,那么您就会破坏代码。如果抛出一个异常,而不是什么都不做,您的IDE会说它很好,因为您的代码在技术层面上是正确的。

 类似资料: