Estoy intentando lanzar una excepción (sin usar un bloque try catch) y mi programa finaliza justo después de que se lanza la excepción. ¿Hay alguna manera de que después de arrojar la excepción, para luego continuar la ejecución de mi programa? Lanzo InvalidEmployeeTypeException que he definido en otra clase pero me gustaría que el programa continúe después de que se lanza.continuación de la ejecución después de que se lanza una excepción en java
private void getData() throws InvalidEmployeeTypeException{
System.out.println("Enter filename: ");
Scanner prompt = new Scanner(System.in);
inp = prompt.nextLine();
File inFile = new File(inp);
try {
input = new Scanner(inFile);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
System.exit(1);
}
String type, name;
int year, salary, hours;
double wage;
Employee e = null;
while(input.hasNext()) {
try{
type = input.next();
name = input.next();
year = input.nextInt();
if (type.equalsIgnoreCase("manager") || type.equalsIgnoreCase("staff")) {
salary = input.nextInt();
if (type.equalsIgnoreCase("manager")) {
e = new Manager(name, year, salary);
}
else {
e = new Staff(name, year, salary);
}
}
else if (type.equalsIgnoreCase("fulltime") || type.equalsIgnoreCase("parttime")) {
hours = input.nextInt();
wage = input.nextDouble();
if (type.equalsIgnoreCase("fulltime")) {
e = new FullTime(name, year, hours, wage);
}
else {
e = new PartTime(name, year, hours, wage);
}
}
else {
throw new InvalidEmployeeTypeException();
input.nextLine();
continue;
}
} catch(InputMismatchException ex)
{
System.out.println("** Error: Invalid input **");
input.nextLine();
continue;
}
//catch(InvalidEmployeeTypeException ex)
//{
//}
employees.add(e);
}
}
¿No crees que este no es un buen ejemplo de cómo usar Excepciones? – manub
Esto funcionó perfectamente. Pude ocuparme del manejo de errores y continuar la ejecución –
Me tomó un tiempo darme cuenta de por qué este código "no es un buen ejemplo" en el comentario de apertura redactado educadamente. 'input.nextLine();' nunca se ejecuta. – Reg