Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник_ПОА.doc
Скачиваний:
26
Добавлен:
13.02.2015
Размер:
2.65 Mб
Скачать

Try and Catch

The try and catch keywords are used together. Use try to enclose the block of code you are concerned might generate an exception, and catch to contain the code that will be executed if the exception occurs. In this example, a calculation creates a division by zero exception, which is then caught. Without the try and catch blocks, this program would fail.

class ProgramTryCatch

{

static void Main()

{

int x=0, y=0;

try

{

x = 10 / y;

}

catch (System.DivideByZeroException)

{

System.Console.WriteLine("There was an attempt to divide by zero.");

}

}

}

It's good programming practice to be specific about the type of exception your catch code is detecting. Each try can have multiple catch statements, each dealing with a different exception.

Обработка ошибок и исключений

Если во время выполнения программы что-то работает неправильно, создается исключение. Исключение останавливает текущий поток программы и если никакие меры не предпринимаются, программа просто прекращает выполнение. Причиной исключений могут быть ошибки в программе (например, деление числа на ноль) или неожиданный ввод (например, выбор несуществующего файла). Задачей программиста является предоставление программе возможности устранить проблемы, не приводя к сбою.

В C# представлено несколько ключевых слов, — try, catch и finally — с помощью которых программа обнаруживает исключения, устраняет их и продолжает выполнение. Они способствуют повышению надежности приложений.

Try и Catch

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

class ProgramTryCatch

{

static void Main()

{

int x=0, y=0;

try

{

x = 10 / y;

}

catch (System.DivideByZeroException)

{

System.Console.WriteLine("There was an attempt to divide by zero.");

}

}

}

В общем случае рекомендуется явно указывать тип исключения, обнаруженного кодом catch. Каждый try может иметь несколько операторов catch, каждый из которых обрабатывает отдельное исключение.

Finally Blocks

Code contained in a finally block is always executed, whether or not an exception occurs. Use the finally block to make sure resources are returned: for example, to make sure that a file is closed.

try

{

// Code to try here.

}

catch (SomeSpecificException ex)

{

// Code to handle exception here.

}

finally

{

// Code to execute after try (and possibly catch) here.

}

Using Exception Handling

Exceptions aren't always a sign that a catastrophic problem has occurred in your program. Often they are a convenient way of leaving a section of code that is no longer relevant, or a signal that a method has been unsuccessful. Many of the .NET Framework class methods create exceptions to warn of a particular condition.