这是我的代码
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;
}
}
}
如何修改此代码,以便在列表为空时抛出异常而不是返回零?
答案 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!!!");
}
}