Необходимость оператора return в try/catch - C#

Формулировка задачи:

Доброго времени суток форумчане! Вопрос может показаться глупым, но все же, мне бы хотелось бы объяснения. Можете объяснить, почему в случае отсутствия оператора return в первом try/catch возникает ошибка данного содержания "Ошибка 1 Использование локальной переменной "fout", которой не присвоено значение" в строке
 fout.WriteByte((byte)i);
. Если написать return - все в порядке. Буду очень признателен за ответ! Заранее спасибо!
class Write
{
    static void Main(string[] args)
    {
        FileStream fout;
        char i;
 
        try
        {
            fout = new FileStream("test.txt", FileMode.Create);
        }
        catch (IOException exc)
        {
            Console.WriteLine("Ошибка: "+exc.Message);
            //return;
        }
 
        try
        {
            for (i = 'A'; i <= 'Z'; i++)
            {
                fout.WriteByte((byte)i);
            }
        }
        catch (IOException exc)
        {
            Console.WriteLine("Ошибка "+exc.Message );
        }
 
        fout.Close();
    }
}

Код к задаче: «Необходимость оператора return в try/catch - C#»

textual
            for (char c = 'A'; c <= 'Z'; c++)
            {
                fout.WriteByte((byte)c);
            }

11   голосов, оценка 4.364 из 5


СОХРАНИТЬ ССЫЛКУ