Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
JAVA шпоры.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
55.63 Кб
Скачать

24. Обработки исключительнх ситуаций. Основные принципы обработки исключений..

Искл. Ситу - это аварийные ситуации, которые могут возникнуть во время выполнения программы.

Существуют следующие причины возникновения исключительных ситуаций:

- попытка выполнить некорректное выражение(попытка использовать класс, которого не существует);

- всевозможные сбои внутри самой виртуальной машины;

В 1ом случае эти ошибки отслеживаются программистом(их можно обрабатывать), их иногда называют синхронными ошибками. Во 2ом случае тип ошибок называет асинхронным. В данном случае никогда не возможно указать точное место возникновения ошибки.

Исключения, порождённые от java lang Exeption являются обрабатываемыми, т.е. во время компиляции проверяется предусмотренная обработка возможный исключительных ситуаций (try, catch, throw, throws): обрабатываться должны исключительные ситуации, связанные с вводом-выводом информации или с пакетом java.io. Так же обрабатываться должны исключительные ситуации, связанные с БД(SQL).

Java lang Error не является обрабатываемой

25. Использование операторов try-catch-finally, throw и throws.Конструкция try-catch

try{}catch(SomeExeptionClass e){…….}

catch(AratheExeptionClass e){}

Эта конструкция работает следующим образом: сразу работает код, находящийся в try. Если во время его выполнения не происходит никаких исключительных ситуаций, то выполнение передаётся за последнюю закрывающую } после catch этого try. Если же возникает ошибка, то выполнение кода происходит по следующему сценарию:

1.если возникает исключительная ситуация, класс которой указан, то выполняется тот catch, с которым связана операция;

2.если класс не указан, то try завершится внештатно;

Конструкция try-catch-finally

Finally предназначен, чтобы обеспечивать гарантию выполнения какого-либо фрагмента кода try. Последовательность выполнения этой конструкции следующая:

Если оператор try нормально, то будет выполнен блок finally. Если оператор finally выполняется нормально, то весь оператор try выполнен нормально. Если происходит преждевременное окончание выполнения блока finally, то весь оператор try завершится предварительно. Бло кода, ассоциированный с finally, будет выполняться всегда. Если в try ошибка, то её перехватит catch.

try{byte[]buffer=newbyte[128];

FileInputStream fis=new FileInputStream(“file.txt”);

while (fis.read (buffer)>0) {обраб. данных}}

catch (IOExeption es){обраб.исключ}finally{fis.flush();fis.close();}

Использование оператора throw и throws

Программист иногда сам может определить исключительную ситуацию, которая может быть сгенерирована программой. Сделать это можно при помощи оператора throw.

public int calculate {int Value{

if (Value<0){

throw new Exeption(“Параметры строки”);

}}

Оператор throw используется как альтернатива оператору try, только он используется не внутри метода, а после объявления метода.

26-27. Основные работы в сети. Адресация в Интернет.

С помощью средств Java можно:

  1. Получить информацию с одной машины и переместить её на другую машину.

  2. Подключиться к базе данных, находящейся в сети. Выполняется с помощью библиотеки Java DataBase Connectivity (JDBC).

  3. Представление услуг через web-сервер. Достигается через какой-либо web-сервер, который поддерживает технологию Java-сервлетов и Java Server Pages (JSP).

  4. Удалённый запуск методов объектов Java на других компьютерах. Выполняется с помощью Remote Method Invocation (RMI) – удалённый вызов методов.

  5. Использовать код, написанный на других языках и работающий в других архитектурах. Позволяет технология CORBA (Common Object Request Broker Architecture) – общая архитектура брокеров объектных запросов.

  6. Изолировать бизнес-логику от соединения, особенно соединения с БД, включающего обработку транзакций и безопасность в корпоративных клиент-серверных системах. Реализуется при помощи EJB (Enterprise JavaBeans).

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

Понятие клиента и сервера

Компьютерная сеть представляет собой несколько компьютеров, объединённых между собой кабелем.

Взаимодействия приложений в сети осуществляются по определённым правилам. Эти правила называются протоколами. Примеры протоколов:- TCP/IP, - VDP, - FTP, - SMTP, - POP3,

- HTTP

Центральными понятиями в любой сети являются понятия сервера и клиента. Сервер- это всё то, что имеет некоторый разделяемый ресурс.

Существует 2 вида серверов: последовательный и параллельный.

Последовательный - обрабатывает запросы клиента на установленные соединения после того, как отрабатывает предыдущий клиент( последовательно). Таким образом, на сервере образуется очередь.

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

Существуют различные типы серверов:

  • Вычислительные серверы (они обеспечивают вычислительную функцию)

  • Серверы печати (управляют совокупностью принтеров)

  • Дисковые серверы (предоставляют работающее в сети дисковое пространство)

  • Web-серверы (хранят web-страницы)

Клиент – это просто любой другой объект, который хочет получить доступ к серверу.

Сокет в переводе означает гнездо, разъём. Это программная абстракция, используемая для представления терминалов соединений между двумя машинами. Для соединений существует сокет на каждой машине. При работе в сети IPадреса недостаточно для однозначной идентификации хоста, т.к. может существовать много служб на 1й машине, поэтому для однозначной идентификации вводится понятие порт.

Адресация в сетях: существует 3 типа адресов:

  1. локальный адрес узла, определяемый технологией, с помощью которой построена отдельная сеть, в которую входит данный узел

Для узлов, входящих в локальные сети, МАС-адрес сетевого адаптера или порта - маршрутизатора .

НП- 11-АО-17-3D-BC-01 (16-ричные)

Эти адреса назначаются производителями оборудования и являются уникальными.

Первые старшие 3 байта –идентификатор фирмы производителя. Младшие 3- назначаются самой фирмой производителем;

2)адрес состоит из 4 байт; НП:

109.26.17.100. Назначается администратором во время конфигурации сети. Состоит из 2х частей: № сети и № узла.

28-30. Организация сетевых соединений с устан-ем соед-ий по TCP/IP. Сокеты TCP/IP клиентов. Сокеты TCP/IP серверов.

Протокол TCP/IP (Transmission Control Protocol) – протокол управления передачей данных. Определяет правила их передачи в сети, в соответствии с которыми между двумя узлами устанавливается логическая связь- выделяется канал сети для передачи данных и информация передаётся в виде байтовых потоков. Этот протокол обеспечивает гарантированную доставку данных. Его недостаток- сильно загружает сеть. UDP (User Datagramm Protocol) – дейтограммный протокол пользователя. Он следует за протоколом TCP , обеспечивает ненадёжную доставку дейтограмм. При этом не нужно выделять канал связи, следовательно сеть менее загружена.

Дейтограмма- это квант информации, передаваемой по сети, содержащая помимо информации ещё и адреса отправителя и получателя. Это альтернатива протоколу ТСР.

Сокет в переводе означает гнездо, разъём. Это программная абстракция, используемая для представления терминалов соединений между двумя машинами. Для соединений существует сокет на каждой машине.

Сокеты серверов, работающих по протоколу TCP/IP

Для организации сокетов серверов используется класс ServerSocket. (используется для создания серверов, которые прослушивают либо локальные, либо удалённые программы клиента).

Конструкторы класса ServerSocket:

  1. ServerSocket (int port) – создаёт сокет на локальном хосте с портом, который указан в качестве параметра;

  2. ServerSocket ( int port, int maxQueue) – создаёт сокет с указанным портом и длиной очереди max;

Класс ServerSocket для создания отдельного сокета, для обработки запроса клиента имеет метод accept(), который является блокирующим вызовом: сервер будет ждать запроса клиента на установление соединения, чтобы инициализировать с ним связь. В результате вызова этого метода создаётся объект класса Socket. Начиная с этого момента появляется соединение Socket –Socket.

НП:

ServerSocket http Server=new ServerSocket(1280);

Socket Sock=http Server.accept();

InputStream is=sock.get InputStream();// получение входного потока объекта Socket

OutputStream os=sock.get OutputStream();//получение выходного потока

int c=is.read();//чтение байта из входного потока

os.write();//запись байта в выходной поток

Сокеты клиентов (TCP/IP)

Для организации используется конструктор Socket:

  1. Socket( String hostname, int port) создаёт сокет с указанным хостом и портом

  2. Socket( InetAdress ipAdress, int port) создаёт сокет с адресом, указанным в ipAdress и портом

Socket clsock=new Socket(“localhost”,1280);

InputStream is=clsock.get InputStream();

OutputStream os=clsock.get OutputStream();

os.write(8);

int c=is.read();

Приложение клиента- это отдельное от сервера приложение, т.е. оно написано в отдельном файле, имеющем свою функцию main(). Могут запускаться на различных компьютерах. Если запускаются на одном, то эти приложения имеют своё адресное пространство( не видят друг друга).

32-33. Использование ключевых слов this, super, super()

  1. В Java указатели отсутствуют, однако при вызове методов, обращении к полям класса можно указать на объект текущего класса, т.е. this – ссылка на объект текущего класса.

Пример

class DemoThis implements Runnable{

public void run(){

//тело потока } public static void main(String []args){

Thread th = new Thread(this);

th.start();

}}

  1. super() – вызывается конструктор суперкласса. Может быть с параметрами и без параметров. Конструктор super вызывается в конструкторе нашего класса, в теле конструктора ключевое слово super должно стоять на первом месте.

Пример

class DemoSuper extends Frame{

public DemoSuper(){

super();

// тело конструктора DemoSuper }}

  1. super. – таким образом мы обращаемся к объекту суперкласса. При обращении получаем доступ к полям, методам родительского класса. Но не нужно забывать про модификаторы доступа родительского класса.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]