Недавно у меня было интервью с компанией, и они дали мне проблему с кодированием. Мне была дана программа, связанная с колодой карт, и одним из способов было перетасовать колоду карт. Поэтому я написал программу как:
/** Shuffle the list of cards so that they are in random order
* @param d Deck of cards*/
public static void shuffle(Deck d)
{
if(d == null)
throw new IllegalArgumentException();
Random randomGenerator = new Random();
List<Card> cards = d.getDeckOfCards(); // cards is basically Linked List.. cards = new LinkedList<Cards>()
for(int i=0;i<cards.size();i++)
{
int randomNumber = randomGenerator.nextInt(52);
Card c1 = cards.remove(randomNumber);
Card c2 = cards.remove(0);
cards.add(0, c1);
cards.add(randomNumber,c2);
}
}
В приведенном выше коде я выбрал IllegalArgumentException, о котором я очень сомневаюсь. В каких условиях на самом деле нужно выбросить исключение во время выполнения? Должно ли мы фактически выбросить исключение во время выполнения?
Спасибо