Вы не правильно используете исключения ...
Исключения - очень дорогой способ обработки логики, подобной этой, и ваш подход состоит в том, чтобы просто создать неконкретное исключение и использовать его неправильно. Исключения предназначены для работы с исключительными вещами, которые могут произойти в ваших программах - недоступность ресурсов, тайм-ауты соединения - подобные вещи.
Проблема, на которую вы смотрите, должна решаться простым управлением потоком.
Надеюсь, это поможет ...
Martin.
Ps. Ваш код с заменой исключений чем-то более разумным может выглядеть следующим образом:
import java.util.Scanner;
public class SOExample {
/**
* @param args
*/
public static void main(String[] args) {
Scanner keyboard = new Scanner(System.in);
String[] employees = new String[5];
boolean done1 = false;
String strMessage = "";
//input and error exception for entering employee names into an array
for (int i = 0; i < 5; i++)
{//begin for
done1 = false;
while (!done1)
{//begin while
strMessage="";
System.out.println("Please enter employee's name: ");
employees[i] = keyboard.nextLine();
if (employees[i].length() == 0)
strMessage = "No name was entered.";
if (employees[i].length() >= 31)
strMessage = "Name entered contains too many "
+ "characters";
if (strMessage == ""){
for (int check = 0; check < employees[i].length(); check++)
{//begin for
if(Character.isDigit(employees[i].charAt(check))){
strMessage = "Input contains invalid "
+ "charaters.";
break;
}
}//end for
}
done1 = (strMessage == "");
if (!done1){
System.out.println("Error: " + strMessage);
}
}//end while
}//end for
}
}