Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CSharp_for_Beginners.doc
Скачиваний:
28
Добавлен:
23.11.2019
Размер:
2.4 Mб
Скачать

Дополнительные способы перечисления

Далее представлено несколько дополнительных функций типов данных enum, которые могут быть полезны.

Отображение значений литералов перечисления

Для доступа к имени или словам, используемым в типе данных enum можно применить метод ToString(), как показано далее.

DayOfWeek day = DayOfWeek.Wednesday;

System.Console.WriteLine(day.ToString()); // displays Wednesday

Установка значений по умолчанию

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

enum Color { Red = 1, Yellow = 2, Blue = 3 };

Фактически, можно определить уникальные целочисленные значения для всех значений.

enum Medal { Gold = 30, Silver = 20, Bronze = 10 };

Errors and Exception Handling

When something goes wrong while a C# program is running, an exception occurs. Exceptions stop the current flow of the program, and if nothing is done, the program simply stops running. Exceptions can be caused by a bug in the program — for example, if a number is divided by zero — or can be a result of some unexpected input, such as a user selecting a file that doesn't exist. As a programmer, you need to allow your program to deal with these problems without crashing to a halt.

C# provides several keywords — try, catch, and finally — that allow programs to detect exceptions, deal with them, and continue running. They are a very useful tool for making your applications more reliable.

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.

You can also cause your own exceptions using the throw keyword.

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