logo search
CSharp_Prog_Guide

Примечания

Код, вызывающий исключение, находится в блоке try. Инструкция catch помещается сразу после него, чтобы обрабатывать исключение IndexOutOfRangeException, если оно происходит. В блоке catch исключение IndexOutOfRangeException обрабатывается, и вместо него создается более подходящее исключение ArgumentOutOfRangeException. Чтобы вызывающий объект получил максимально подробную информацию, рекомендуется указать исходное исключение в качестве значения InnerException нового исключения. Поскольку свойство InnerException доступно только для чтения, его значение необходимо присваивать только в конструкторе нового исключения.

How to: Execute Cleanup Code Using finally

The purpose of a finally statement is to ensure that the necessary cleanup of objects, usually objects that are holding external resources, occurs immediately, even if an exception is thrown. One example of such cleanup is calling Close on a FileStream immediately after use instead of waiting for the object to be garbage collected by the common language runtime, as follows:

static void CodeWithoutCleanup()

{

System.IO.FileStream file = null;

System.IO.FileInfo fileInfo = new System.IO.FileInfo("C:\\file.txt");

file = fileInfo.OpenWrite();

file.WriteByte(0xF);

file.Close();

}