Top.Mail.Ru
Ответы

Программирование с++, Java, помогите пожалуйста

1. Реализуйте метод raiseException(ниже) который принимет число и выбрасывает исключения:
* если число 1 то выбросить SocketException
* если число 2 то выбросить ClassNotFoundException
* если число 3 то выбросить AccessDeniedException
* если число 4 то выбросить ExportException
*
* 2. Реализуйте метод catchException который вызывает raiseException затем ловит каждое
* исключение отдельным блоком catch и возвращяет его название:
* для SocketException вернуть строку "SocketException"
* для ClassNotFoundException вернуть строку "ClassNotFoundException"
* для AccessDeniedException вернуть строку "AccessDeniedException"
* для ExportException вернуть строку "ExportException"

По дате
По рейтингу
Аватар пользователя
Новичок

Для решения данной задачи вам нужно использовать механизм исключений в Java.

Вот код для реализации метода raiseException, который выбрасывает исключения в зависимости от переданного числа:


123456789101112131415161718192021222324252627282930313233343536373839
 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 и возвращает его название:

12345678910111213141516171819202122232425262728293031
 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".

Аватар пользователя
Оракул
Аватар пользователя
Просветленный

это же детский сад