Главная страница
Навигация по странице:

  • ЛАБОРАТОРНАЯ РАБОТА №6 Разработка программы, корректно обрабатывающей исключения.

  • Цель работы.

  • Теоретическая часть

  • Лабораторная работа Разработка программы, корректно обрабатывающей исключения. ИБ-95_Кондаков_П_А_ЛР6. Отчет защищен с оценкой преподаватель доцент, к т. н


    Скачать 19.61 Kb.
    НазваниеОтчет защищен с оценкой преподаватель доцент, к т. н
    АнкорЛабораторная работа Разработка программы, корректно обрабатывающей исключения
    Дата28.04.2022
    Размер19.61 Kb.
    Формат файлаdocx
    Имя файлаИБ-95_Кондаков_П_А_ЛР6.docx
    ТипОтчет
    #503120


    Факультет Информационных систем и технологий

    Кафедра Безопасности информационных систем

    ОТЧЕТ

    ЗАЩИЩЕН С ОЦЕНКОЙ

    ПРЕПОДАВАТЕЛЬ

    доцент, к.т.н.













    должность, уч. степень, звание




    подпись, дата




    инициалы, фамилия


    ЛАБОРАТОРНАЯ РАБОТА №6
    Разработка программы, корректно обрабатывающей исключения.
    по курсу: Кроссплатформенное программирование
    РАБОТУ ВЫПОЛНИЛ

    СТУДЕНТ ГР.

    ИБ-95










    Кондаков П.А.










    подпись, дата




    инициалы, фамилия



    Санкт-Петербург

    2021г.

    1. Цель работы.


    Изучение общих принципов программирования в среде java.

    Написание приложения, обрабатывающего исключения.


    1. Задание на выполнение лабораторной работы.


    Необходимо создать тестовую программу, содержащую несколько функций, в каждой из которых возникает, перехватывается и обрабатывается одно из видов исключений. Консольное меню должно отражать перечень перехватываемых программой исключений. После выбора того или иного пункта меню, программа должна генерировать соответствующее исключение, перехватывать его и сообщать пользователю результат обработки.


    1. Ошибка ввода-вывода.

    2. Переполнение массива.

    3. Отсутствие файла.

    4. Деление на ноль.

    5. Собственное исключение произвольного вида.


    Каждый вид исключений должен возникать и перехватываться в своей собственной функции.

    1. Теоретическая часть

    Исключение — это проблема(ошибка) возникающая во время выполнения программы. Исключения могут возникать во многих случаях, например:

    Пользователь ввел некорректные данные.

    Файл, к которому обращается программа, не найден.

    Сетевое соединение с сервером было утеряно во время передачи данных. И т.д.

    Все исключения в Java являются объектами. Поэтому они могут порождаться не только автоматически при возникновении исключительной ситуации, но и создаваться самим разработчиком.

    Операции по их поиску и предотвращению называются обработкой исключений.

    Для обработки исключений java используются следующие операторы: try, catch, finally, throw, throws.

    Оператор или часть кода, в которой вам надо отыскать ошибку, помещается в блок try.

    Далее в блоке catch вы указываете, что за исключение надо ловить и как его обрабатывать.

    В блоке finally набор обязательных действий при возникновении ошибки. Обычно это запись данных, закрытие ресурсов и пр. Блок исполняется всегда, вне зависимости от срабатывания catch.

    1. Ход работы

    Код программы:
    package app6;

    import java.io.BufferedReader;

    import java.io.File;

    import java.io.FileNotFoundException;

    import java.io.FileReader;

    import java.io.IOException;

    import java.util.Scanner;
    public class APP6 {
    public static void main(String[] args) {

    int n = -1;

    Scanner scan = new Scanner(System.in);

    while(n != 0) {

    System.out.println("1. Ошибка ввода-вывода.");

    System.out.println("2. Переполнение массива.");

    System.out.println("3. Отсутствие файла.");

    System.out.println("4. Деление на ноль.");

    System.out.println("5. Неверный ввод года.");

    System.out.println("0. Завершение работы.");

    System.out.print("Выберите нужную позицию: ");

    n = Integer.parseInt(scan.nextLine());

    System.out.println();

    switch(n) {

    case 1:

    vvodandyvod();

    break;

    case 2:

    mnogomass();

    break;

    case 3:

    gdefile();

    break;

    case 4:

    delenyenol();

    break;

    case 5:

    NevernyGod();

    break;

    case 0:

    System.out.println("Завершение работы");

    break;

    default:

    System.out.println("Значение недействительно");

    }

    }

    }

    static void vvodandyvod() {

    try {

    File file = new File("file.txt");

    BufferedReader reader = new BufferedReader(new FileReader(file));

    reader.readLine();

    reader.reset();

    } catch (IOException ex) {

    System.out.println("Замечена ошибка ввода-вывода. "+ ex.getMessage()+'\n');

    }

    }

    static void mnogomass() {

    try {

    int test[] = new int[50];

    for(int i = 0; i < 51; i++) {

    test[i] = i;

    if(i % 10 == 0 && i != 0) System.out.println();

    System.out.print(test[i]+" ");

    }

    } catch (ArrayIndexOutOfBoundsException ex) {

    System.out.println("Обработано исключение переполнения массива. "+ ex.getMessage()+'\n');

    }

    }

    static void gdefile() {

    try {

    BufferedReader reader = new BufferedReader(new FileReader("C:/Этого_файла_не_существует.txt"));

    System.out.println("Файл считан"+ reader.readLine());

    } catch (FileNotFoundException ex) {

    System.out.println("Обработано исключение отсутствия файла!"+ ex.getMessage()+'\n');

    } catch (IOException e) {

    System.out.println("Замечена ошибка ввода-вывода. "+ e.getMessage()+'\n');

    }

    }

    static void delenyenol() {

    try {

    System.out.println("Деление на ноль, получен результат: ");

    System.out.println(999 / 0);

    } catch (ArithmeticException ex) {

    System.out.println("Обработано исключение деления на ноль!" + ex.getMessage()+'\n');

    }

    }

    static void NevernyGod() {

    Year p = new APP6().new Year();

    try {

    p.izmgoda(-2001);

    } catch (NevernyGod e) {

    System.out.println(e.getMessage());

    }

    }

    class Year{

    String name;

    private int god;

    public void izmgoda(int god) throws NevernyGod {

    if(god > 0)

    this.god = god;

    else throw new NevernyGod(god);

    }

    public int znachgoda() {

    return god;

    }

    }

    class NevernyGod extends Exception {

    public NevernyGod(int god) {

    super("Замечена ошибка! "+god+" Год не может быть отрицательным");

    }

    }

    }

    Результат работы программы:


    1. Выводы


    В ходе выполнения данной лабораторной работы была создана программа, содержащая несколько функций, в каждой из которых возникает, перехватывается и обрабатывается одно из видов исключений. Консольное меню отражает перечень перехватываемых программой исключений. После выбора того или иного пункта меню, программа генерирует соответствующее исключение, перехватывает его и сообщает пользователю результат обработки.


    написать администратору сайта