После первого знакомства с программированием многие программисты перестают задумываться об управляющей логике, поскольку большинство языков располагает лишь малой частью ее элементов. Однако мир управляющей логики выходит далеко за рамки возможностей, предоставляемых большинством основных языков программирования. Во многих не так широко известных специализированных языках имеются интересные и продвинутые элементы управляющей логики.
Примеры продвинутой управляющей логики
Лучше всего начать с рассмотрения примеров элементов продвинутой управляющей логики, существующих в различных языках. Далее мы обобщим эти знания в единую структуру для ситуаций, где может потребоваться их применение.
Нелокальные выходы
Первый прием продвинутой управляющей логики вам, вероятно, уже знаком: нелокальные выходы. Существует несколько типов нелокальных выходов, каждый из которых можно поделить на две категории: структурированные и неструктурированные. Неструктурированные локальные выходы — это именно то, от чего вас предостерегал преподаватель информатики; например, страшный 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. TheCoach 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 factCoach Outlet Online
that long-term history ofCoach Outlet Online
. No just one could deny the big accomplishment thatCoach Factory
made all through our existenceCoach outlet online
and will operateCoach Outlet Online
accomplishment toward future. We all knowCoach Outlet
has the great excellent as nicely as one ofCoach Factory Outlet
the most great factors they choose. OfCoach Outlet
instruction program this just one is worth to individualCoach handbags outlet
with very good good quality and awesome craftsmanshipcheap coach purses
.Coach Factory
New Arrivals are cozy productsCoach Factory Online
that occur to be fashionableCoach Factory Outlet
, fashionable and definitelyCoach Factory Outlet Online
practical. You can beginCoach Outlet Canada
searching during the craze ofCoach Outlet
New Arrivals andCoach Factory
carrying them is your individual characterCoach Factory Online
and style. TheyCoach Factory Outlet
may be utilized to fixtureCoach Factory Online
with diverse outfitsCheap Coach Purses
definitely. It might beDiscount Coach Handbags
the softness inside of the leatherdiscount coach purses
, the security inside ofCoach Outlet Online
the lock closureCoach Factory Online
, as correctlyCoach Factory Outlet Online
since the distinctiveCoach Factory
sort that providesCoach Outlet Online
about a woman to adoreCoach Outlet Store Online
New Arrivals. However, forCheap Coach handbags
just about any one, you can go toCoach Factory Outlet Online
over the internet shop to acquire for the variety,
Coach Factory
diversity and minimal priceCoach Factory Canada
. Coach Shoulder Bags developed of totally different elements are well-known as correctly since the leaders. BecauseCoach Factory Outlet
over the
Coach Factory Outlet Online
is so attainable due toCoach Purses Outlet
the fact of its decrease pricesCoach Outlet Store Online
, it has turn into among the most well-knownCoach Factory Online
to dateCoach 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.