2016-12-11 8 views
1

Это мой кодКак добавить «исключение исключения» к этому коду?

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

почему у вас есть ВНУТР тип возвращаемого, когда вы не хотите, чтобы вернуть один ? – beatrice

+0

ops my bad! забыл заявление о возвращении! – In6ify

+1

@ In6ify какое исключение вы хотите бросить? – nullpointer

ответ

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!"); 
    } 
} 
0

Вы можете изменить блок еще следующим образом:

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 может расширить любое исключение, которое вы могли бы хотеть бросить.

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(); 
0

Возвращение утверждение не может быть внутренним «если блок», поскольку он возвращается, если первое сравнение success.But это зависит от ваших потребностей, где вы должны вернуться метод. Попробуйте этот код

создать специальное исключение

общественного класса 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!!!"); 
    } 
}