Продолжения и продвинутая управляющая логика

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

Примеры продвинутой управляющей логики

Лучше всего начать с рассмотрения примеров элементов продвинутой управляющей логики, существующих в различных языках. Далее мы обобщим эти знания в единую структуру для ситуаций, где может потребоваться их применение.

Нелокальные выходы

Первый прием продвинутой управляющей логики вам, вероятно, уже знаком: нелокальные выходы. Существует несколько типов нелокальных выходов, каждый из которых можно поделить на две категории: структурированные и неструктурированные. Неструктурированные локальные выходы — это именно то, от чего вас предостерегал преподаватель информатики; например, страшный goto. Но истина состоит в том, что, при разумном и мудром использовании неструктурированные локальные выходы могут быть очень полезны. Например, они могут улучшить читаемость программ со сложной управляющей логикой. Если сложная управляющая логика не обладает естественной структурностью, то навязывание ей какого-либо структурирования ухудшает её читаемость, а не улучшает. Дополнительную информацию касательно «за» и «против» использования gotoсмотрите по ссылкам в разделе Ресурсы далее в этой статье.

Что касается структурированных нелокальных выходов, то вы, видимо, хорошо знакомы с их самым распространенным типом — исключениями. Если же последние 20 лет вы безвылазно занимались программированием на C, Fortran и Cobol, то вот краткое введение в исключения.

Исключение — это способ сообщить об ошибке в коде и локализовать ее. Обычно, если происходит ошибка, нам нужно, чтобы она обрабатывалась, а остальная часть кода бы не выполнялась без явного на то разрешения. В качестве примера рассмотрим простой код на языке Java ™ для работы с базой данных:

Листинг 1. Пример простого кода для работы с базой данных

//Примечание: этот код не скомпилируется, но так оно и задумывалось.
import java.sql.*;
...
public static int testdbcode(Connection conn) {
//Приготовить оператор
PreparedStatement s = conn.prepareStatement(
"select id from test_table where name = ?");
//Установить параметры
s.setString(1, "fred");
//Выполнить запрос
ResultSet rs = s.executeQuery()
//Перейти к первой строке результата
rs.next();
//Получить ответ (первый параметр результата)
int id = rs.getInt(1);

return id;
}
...

Недостаток этого кода в том, что здесь не используется обработка ошибок, а при взаимодействии с базами данных или какими-либо другими внешними компонентами ошибки могут возникать практически на каждом шагу. При этом, получив где-либо в коде ошибку, нет особого смысла продолжать его выполнение. Например, если ошибка произошла при подготовке запроса, то уже нет смысла в дальнейшей установке параметров, выполнении запроса и получении ответа; после первой же ошибки запрос практически провален. Поэтому в Java имеются исключения, позволяющие охватить блок кода, который бы целиком пропускался при появлении ошибки. Чтобы сделать это на Java, код нужно переписать следующим образом:

Листинг 2. Простая функция для работы с базой данных с обработкой исключений

import java.sql.*;
...
public static int testdbcode(Connection conn) {
try {
//Приготовить оператор
PreparedStatement s = conn.prepareStatement(
"select id from test_table where name = ?");
//Установить параметры
s.setString(1, "fred");
//Выполнить запрос
ResultSet rs = s.executeQuery()
//Перейти к первой строке результата
rs.next();
//Получить ответ (первый параметр результата)
int id = rs.getInt(1);

return id;
} catch (Exception e) {
//Здесь следует код обработки ошибок
return -1;
}
}
...

Код в блоке try исполняется до тех пор, пока не закончится, либо один из операторов не приведет к ошибке. Если возникаетошибка, оставшийся код в блоке try пропускается и выполняется код в блоке catch , где информация об исключении хранится в переменной e . В Java выдаваемые ошибки сами по себе являются полноценными классами, поэтому в исключении можно разместить любое количество информации. На практике можно создать несколько блоков catch , каждый из которых обрабатывает отдельный класс исключений.

Комментарии

Brand Coach Purses Outlet

Brand

Coach Purses Outlet

are one of the best handbags series in the market for females nowadays. The

Coach Factory Outlet

series do make ladies become more charming and outstanding if they choose the most suitable one, which could be used in a variety of occasions.

Coach Factory Online

female will be the actuality the fact

Coach Outlet Online

that long-term history of

Coach Outlet Online

. No just one could deny the big accomplishment that

Coach Factory

made all through our existence

Coach outlet online

and will operate

Coach Outlet Online

accomplishment toward future. We all know

Coach Outlet

has the great excellent as nicely as one of

Coach Factory Outlet

the most great factors they choose. Of

Coach Outlet

instruction program this just one is worth to individual

Coach handbags outlet

with very good good quality and awesome craftsmanship

cheap coach purses

.

Coach Factory

New Arrivals are cozy products

Coach Factory Online

that occur to be fashionable

Coach Factory Outlet

, fashionable and definitely

Coach Factory Outlet Online

practical. You can begin

Coach Outlet Canada

searching during the craze of

Coach Outlet

New Arrivals and

Coach Factory

carrying them is your individual character

Coach Factory Online

and style. They

Coach Factory Outlet

may be utilized to fixture

Coach Factory Online

with diverse outfits

Cheap Coach Purses

definitely. It might be

Discount Coach Handbags

the softness inside of the leather

discount coach purses

, the security inside of

Coach Outlet Online

the lock closure

Coach Factory Online

, as correctly

Coach Factory Outlet Online

since the distinctive

Coach Factory

sort that provides

Coach Outlet Online

about a woman to adore

Coach Outlet Store Online

New Arrivals. However, for

Cheap Coach handbags

just about any one, you can go to

Coach Factory Outlet Online


over the internet shop to acquire for the variety,

Coach Factory

diversity and minimal price

Coach Factory Canada

. Coach Shoulder Bags developed of totally different elements are well-known as correctly since the leaders. Because

Coach Factory Outlet


over the

Coach Factory Outlet Online

is so attainable due to

Coach Purses Outlet

the fact of its decrease prices

Coach Outlet Store Online

, it has turn into among the most well-known

Coach Factory Online

to date

Coach Outlet Online Store

.

Louboutin Pas Cher a un

Louboutin Pas Cher a un penchant pour le Moyen-Orient et a une maison de vacances en Egypte, sur le Nil à Louxor.
Comment avez- Louboutin Chaussures obtenir de gawping au danseurs de montage de ses créations sur les beautés classe tels que la princesse Caroline de Monaco, Catherine Deneuve et la reine Rania de Jordanie? Ce qui rend les chaussures de Christian Louboutin Chaussures se démarquer, outre leur qualité exquise, artisanat d'art, sexy talons hauts et des dessins originaux, est la brillante vernis à ongles semelle rouge.Christian Louboutin Paris sont élégantes, de style ainsi que un seul de ce genre. à peu près tous dame aime à posséder ces types de Christian Louboutin Pas Cher chaussures.

Una delle poche aziende

Una delle poche aziende abbigliamento di lusso,Moncler Outlet ha incorporato di alta moda con la funzionalità completa,offrendo una linea completa di tendenze del design e stili differenti.Outlet Moncler giacca Branson è destinato ad attrarre verso di sé stesso in quanto offre l'abbigliamento migliore Moncler 2012 inverno e fa in modo che si cammina in grande stile in tutto il inverni.Essere alla moda anche nelle peggiori condizioni climatiche non è un Piumini Moncler problema se si possiede un giubbotto Moncler.

Borse Designer,Gucci Sito

Borse Designer,Gucci Sito Ufficiale conosciuto per essere il miglior amico delle femmine,sono un'estensione della personalità di una donna,che danno la sua classe,eleganza e senso dello stile.Tutte le serie di Gucci Borse da donna sono leggeri,durevoli e unico per colore,forma e stile!Grande abbastanza da contenere tutti gli elementi essenziali,ma abbastanza piccolo per dare glamour a ogni occasione Gucci Borse 2012 - che si tratti di giorno o di sera Sia che preferiate elegante o casual,si può avere lo stile e la scelta dei colori nel nostro sito Borsa Gucci web per creare il proprio look,in qualsiasi occasione.