ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИФедеральное государственное образовательное бюджетное учреждениевысшего профессионального образования«Санкт-Петербургский государственный университет телекоммуникацийим. проф. М. А. Бонч-Бруевича»Кафедра Безопасности информационных системОтчет по лабораторной работе №6«Разработка программы корректно отрабатывающей исключения.»По дисциплине: «Кроссплатформенное программирование»Цель работы:
Изучение общих принципов программирования в среде java.
Написание приложения, обрабатывающего исключения.
Теоретическая часть:
В мире программирования возникновение ошибок и непредвиденных ситуаций при выполнении программы называют исключением. В программе исключения могут возникать в результате неправильных действий пользователя, отсутствии необходимого ресурса на диске, или потери соединения с сервером по сети. Причинами исключений при выполнении программы также могут быть ошибки программирования или неправильное использование API. В отличие от нашего мира, программа должна четко знать, как поступать в такой ситуации. Для этого в Java предусмотрен механизм исключений.
Обработка исключений в Java основана на использовании в программе следующих ключевых слов:
try – определяет блок кода, в котором может произойти исключение;catch – определяет блок кода, в котором происходит обработка исключения;finally – определяет блок кода, который является необязательным, но при его наличии выполняется в любом случае независимо от результатов выполнения блока try.Эти ключевые слова используются для создания в программном коде специальных обрабатывающих конструкций: try{}catch, try{}catch{}finally, try{}finally{}. throw – используется для возбуждения исключения;throws – используется в сигнатуре методов для предупреждения, о том что метод может выбросить исключение.
Создание исключения
При исполнении программы исключение генерируется JVM или вручную, с помощью оператора throw. При этом в памяти создается объект исключения и выполнение основного кода программы прерывается, а обработчик исключений JVM пытается найти способ обработать исключение.
Обработка исключения
Создание блоков кода, для которых мы предусматриваем обработку исключений в Java, производится в программе с помощью конструкций try{}catch, try{}catch{}finally, try{}finally{}.При возбуждении исключения в блоке try обработчик исключения ищется в следующем за ним блоке catch. Если в catch есть обработчик данного типа исключения – управление переходит к нему. Если нет, то JVM ищет обработчик этого типа исключения в цепочке вызовов методов до тех пор, пока не будет найден подходящий catch.Ходработы:package Isklucheniya;import java.io.*;import java.util.*;public class Isklucheniya {static Scanner in = new Scanner(System.in); public static void main(String[] args) throws IOException {int w=0; while (w!=6){ System.out.println();System.out.println("---------------------------------------------");System.out.println("1 - Генерируем пример ошибки ввода/вывода");System.out.println("2 - Переполняем масив");System.out.println("3 - Откроем отстутствующий *.txt файл");System.out.println("4 - Поделим число на 0"); System.out.println("5 - Вычислим факториал любого числа"); System.out.println("6 - Выход");System.out.println("Ваш выбор = ");int q = in.nextInt();System.out.println();switch (q){ case 1:{ INPUT_AND_OUTPUT_ERROR(); } break;case 2:{ PEREPOLNENIE_MASSIVA(); } break; case 3:{ OTKRYTIE_OTSUT_FILE();} break;case 4:{DELENIE_NA_0(); } break; case 5:{FACTORIAL();} break; case 6:{w=6;System.out.println("EXIT");} break;default:{w=0;System.out.println("Not found");} break; } } }static void INPUT_AND_OUTPUT_ERROR() { try{FileInputStream fin = null;int i1;try{ fin = new FileInputStream("C://XXX//XXX.txt");fin.close();while((i1=fin.read())!=-1);{ System.out.println((char)i1);} }catch(IOException e1){ System.out.println("Исключение: "+ e1);} FileOutputStream fin1 = null;String Str="YYY";int i2;try{ fin1 = new FileOutputStream("C://XXX//XXX.txt");fin1.close();fin1.write(Str.getBytes()); }catch(IOException e1){ System.out.println("Исключение: "+ e1);} }finally{System.out.println("Complete"); } } static void PEREPOLNENIE_MASSIVA(){try
{
int[] array = new int[4];
array[0]=4; array[1]=8; array[2]=10; array[3]=11;
System.out.println("Существует массив array[], состоящий из 4 элементов: " + array[0] +", "+array[1] +", "+array[2] +", "+array[3]);