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

Глобальные атрибуты

Большинство атрибутов применяется к определенным элементам языка, таким как классы или методы; однако, некоторые атрибуты являются глобальными и могут применяться ко всей сборке или методу. Например, атрибут AssemblyVersionAttribute можно использовать для встраивания сведений о версии в сборку, например вот так:

[assembly: AssemblyVersion("1.0.0.0")]

Глобальные атрибуты отображаются в исходном коде после любых директив using верхнего уровня и перед любым типом или объявлениями пространства имен. Глобальные атрибуты могут присутствовать в нескольких файлах исходного кода, но файлы должны быть скомпилированы за один проход компиляции.

Несколько часто используемых атрибутов уровня сборки .NET Framework перечислены ниже:

AssemblyCompanyAttribute

AssemblyConfigurationAttribute

AssemblyCopyrightAttribute

AssemblyCultureAttribute

AssemblyDescriptionAttribute

AssemblyProductAttribute

AssemblyTitleAttribute

AssemblyTrademarkAttribute

Эти атрибуты используются в проектах на основе Visual Studio Шаблон "Приложение Windows Forms". В этом шаблоне содержится файл с именем AssemblyInfo.cs, в котором находятся следующие экземпляры атрибутов:

--

Примечание.

Атрибуты уровня сборки пропускаются, если сборка не создается.

Exceptions and Exception Handling

The C# language's exception handling features help you deal with any unexpected or exceptional situations that occur when a program is running. Exception handling uses the try, catch, and finally keywords to try actions that may not succeed, to handle failures, and to clean up resources afterward. Exceptions can be generated by the common language runtime (CLR), by third-party libraries, or by application code that uses the throw keyword.

In this example, a method tests for a division by zero, and catches the error. Without the exception handling, this program would terminate with a DivideByZeroException was unhandled error.

int SafeDivision(int x, int y)

{

try

{

return (x / y);

}

catch (System.DivideByZeroException dbz)

{

System.Console.WriteLine("Division by zero attempted!");

return 0;

}

}

Исключения и обработка исключений

Функции обработки исключений на языке C# помогают обрабатывать любые непредвиденные или исключительные ситуации, происходящие при выполнении программы. При обработке исключений используются ключевые слова try, catch и finally для попыток применения действий, которые могут не достичь успеха, для обработки ошибок и для последующего освобождения ресурсов. Исключения могут генерироваться средой CLR, внешними библиотеками или кодом приложения, в котором используется ключевое слово throw. Во многих случаях исключение может выдаваться не методом, вызванным непосредственно кодом, а другим методом, расположенным ниже в стеке вызовов. Когда это происходит, среда CLR выполняет откат стека в поисках метода с блоком catch для определенного типа исключения. При обнаружении первого такого блока catch этот блок выполняется.

В этом примере метод тестирует деление на ноль и выполняет перехват соответствующей ошибки. Без обработки исключений эта программа была бы завершена с ошибкой DivideByZeroException was unhandled (не обработано исключение "деление на ноль").

-----

Exceptions Overview

Exceptions have the following properties:

  • When your application encounters an exceptional circumstance, such as a division by zero or low memory warning, an exception is generated.

  • Use a try block around the statements that might throw exceptions.

  • Once an exception occurs in the try block, the flow of control immediately jumps to an associated exception handler, if one is present.

  • If no exception handler for a given exception is present, the program stops executing with an error message.

  • If a catch block defines an exception variable, you can use it to obtain more information about the type of exception that occurred.

  • Actions that may cause an exception are executed with the try keyword.

  • An exception handler is a block of code that is executed when an exception occurs. In C#, the catch keyword is used to define an exception handler.

  • Exceptions can be explicitly generated by a program by using the throw keyword.

  • Exception objects contain detailed information about the error, such as the state of the call stack and a text description of the error.

  • Code in a finally block is executed even if an exception is thrown, therefore allowing a program to release resources.