Для решения данной задачи вам нужно использовать механизм исключений в Java.
Вот код для реализации метода raiseException, который выбрасывает исключения в зависимости от переданного числа:
import java.net.SocketException;
import java.io.IOException;
import java.nio.file.AccessDeniedException;
import javax.naming.directory.InvalidAttributesException;
import javax.management.loading.ExportException;
public static void raiseException(int num) throws IOException, ClassNotFoundException, AccessDeniedException, ExportException {
switch(num) {
case 1:
throw new SocketException("SocketException");
case 2:
throw new ClassNotFoundException("ClassNotFoundException");
case 3:
throw new AccessDeniedException("AccessDeniedException");
case 4:
throw new ExportException("ExportException");
default:
throw new InvalidAttributesException("Invalid number");
}
}
Здесь мы использовали оператор switch для выбора исключения в зависимости от переданного числа.
А вот код для реализации метода catchException, который вызывает raiseException, ловит каждое исключение отдельным блоком catch и возвращает его название:
public static String catchException(int num) {
try {
raiseException(num);
} catch (SocketException e) {
return "SocketException";
} catch (ClassNotFoundException e) {
return "ClassNotFoundException";
} catch (AccessDeniedException e) {
return "AccessDeniedException";
} catch (ExportException e) {
return "ExportException";
} catch (IOException | InvalidAttributesException e) {
return "Unknown Exception";
}
return "";
}
Здесь мы вызываем метод raiseException в блоке try, а затем ловим каждое исключение отдельным блоком catch. Если исключение не относится ни к одному из указанных типов, мы возвращаем строку "Unknown Exception".
* если число 1 то выбросить SocketException
* если число 2 то выбросить ClassNotFoundException
* если число 3 то выбросить AccessDeniedException
* если число 4 то выбросить ExportException
*
* 2. Реализуйте метод catchException который вызывает raiseException затем ловит каждое
* исключение отдельным блоком catch и возвращяет его название:
* для SocketException вернуть строку "SocketException"
* для ClassNotFoundException вернуть строку "ClassNotFoundException"
* для AccessDeniedException вернуть строку "AccessDeniedException"
* для ExportException вернуть строку "ExportException"