Главная arrow Язык программирования C# arrow C# Полное руководство Герберт Шилдт arrow Обработка синтаксических ошибок C# Полное руководство Герберт Шилдт

Обработка синтаксических ошибок C# Полное руководство Герберт Шилдт

Если вы только начинаете изучать программирование, то вам следует научиться правильно истолковывать ошибки (и реагировать на них), которые могут появиться при попытке скомпилировать программу. Большинство ошибок компиляции возникают в результате опечаток при наборе исходного текста программы. Все программисты рано или поздно обнаруживают, что при наборе исходного текста программы очень легко сделать опечатку. Правда, если вы наберете что-нибудь неправильно, компилятор выдаст соответствующее сообщение о синтаксической ошибке при попытке скомпилировать вашу программу. В таком сообщении обычно указывается номер строки исходного текста программы, где была обнаружения ошибка, а также кратко описывается характер ошибки.
Несмотря на полезность сообщений о синтаксических ошибках, выдаваемых компилятором, они иногда вводят в заблуждение. Ведь компилятор C# пытается извлечь какой-то смысл из исходного текста, как бы он ни был набран. Именно по этой причине ошибка, о которой сообщает компилятор, не всегда отражает настоящую причину возникшего затруднения. Неумышленный пропуск открывающей фигурной скобки после метода Main () в рассмотренном выше примере программы приводит к появлению приведенной ниже последовательности сообщений об ошибках при компиляции данной программы компилятором командной строки csc. (Аналогичные ошибки появляются при компиляции в интегрированной среде разработки Visual Studio.)

EX1.CS (12,21) : ошибка CS1002 : ; ожидалось
ЕХ1.CS (13,22) : ошибка CS1519: Недопустимая лексема '(' в
объявлении члена класса, структуры или интерфейса
EX1.CS(15,1) : ошибка CS1022: Требуется определение типа
или пространства имен либо признак конца файла

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