如何添加"抛出异常"这段代码?

时间:2016-12-11 12:36:25

标签: java arrays try-catch bluej

这是我的代码

 public int Test(int[]n){
    if(n.length!=0){
        int smallest = n[0];
        for(int i = 0; i<n.length ; i++){
            if(smallest > n[i]){
                smallest = n[i];
                return smallest; 
            }else{
            return 0; 
        }
    }

}

如何修改此代码,以便在列表为空时抛出异常而不是返回零?

4 个答案:

答案 0 :(得分:3)

您可以简单地实现目标:

 public int Test(int[] n) {
    if (n.length != 0) {
        int smallest = n[0];
        for (int i = 0; i < n.length; i++) {
            if (smallest > n[i]) {
                smallest = n[i];
            }
        }
        return smallest;
    } else {
        throw new RuntimeException("List is empty!");
    }
}

答案 1 :(得分:0)

您可以按如下方式修改else块:

if(n.length!=0){
    int smallest = n[0];
    for(int i = 0; i<n.length ; i++){
        if(smallest > n[i]){
            smallest = n[i];
            return smallest; // you might want to change this as well as suggested by @saeid
        } else {
            throw new CustomException(); 
        }
    }
}

其中CustomException可以扩展您可能想要抛出的任何异常。

答案 2 :(得分:0)

您可以简单地检查空列表,如果它是空的,只需抛出异常。

    throw new Exception("Your message that you want to show whenever the list is empty").

或者

创建自定义异常类。

    class ListIsEmptyException extends Exception{
       //create constructors as per your need
    }

现在如果列表为空

    throw new ListIsEmptyException();

答案 3 :(得分:0)

return语句不能在内部&#34; if block&#34;因为它在第一次比较成功时返回。但是这取决于你必须返回方法的要求。试试这段代码

创建自定义异常

public class customException {

public customException(String msg) {

    super(msg);
}

}

if(n.length!=0){
    int smallest = n[0];
    for(int i = 0; i<n.length ; i++){
        if(smallest > n[i]){
            smallest = n[i];
            return smallest; 
        }else{
            throw new customException("Its an empty list!!!"); 
    }
}