Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Desktop_1 / ЛК / Лекция 11Исключения.doc
Скачиваний:
37
Добавлен:
10.06.2015
Размер:
265.73 Кб
Скачать
    1. Try, Catch, Finally

Иногда возникает потребность определить программный блок, который должен выполняться по выходу из try/catch блока. Исключение может вызвать ошибку, которая является причиной преждевременного возврата из текущего метода. Удобный путь выхода из этого – блок finally.

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

Синтаксис инструкции:

class ProgramTryCatchFinally

{

static void Main()

{

try

{

// Блок кода, предназначенный для обработки ошибок

}

catch (<Тип_Исключения1>)

{

// Обработчик для исключения (<Тип_Исключения1>).

}

catch (<Тип_Исключения2>)

{

// Обработчик для исключения (<Тип_Исключения2>).

}

…..

finally

{

// Код завершения обработки исключений.

}

Не зависимо от итога выполнения try/catch блоков, блок finally выполняется обязательно.

Задача. Используя закон Ома рассчитать величину тока. Проект оконное приложение. Сначала создается интерфейс будущего приложения, а затем обработчик события щелчка по кнопке «Вычислить».

0

Режим проектирования Режимы запуска: 1

2 3

Листинг программы

using System;

using System.Collections.Generic; using System.ComponentModel; using System.Data;

using System.Drawing; using System.Linq; using System.Text;

using System.Windows.Forms;

namespace WindowsFormsApplication1

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

try

{

int U = int.Parse(textBox1.Text); // преобразование строкового

int R = int.Parse(textBox2.Text); // отображения в целое

double I = (double)U / R;

label3.Text = I.ToString()+ " A"; // преобразование числа в строку

}

catch

{

label3.Text = "Нельзя вводить буквы и символы";

}

}

}

}

Форматы ввода/вывода

При вводе и выводе информации в языке С# используются функции преобразования:

Функция

Значение

Convert.ToDouble(s)

Convert.ToInt16(s)

Convert.ToChar(q)

int.Parse( s)

double.Parse(s)

S.ToString()

String.Format(s,x)

Вещественное число, изображением которого является строка s

Целое, изображением которого является строка s

Код символа, изображением которого является символ q

Целое, изображением которого является строка s

Вещественное, изображением которого является строка s

Строка, являющаяся изображением вещественного s

Строка, являющаяся изображением вещественного s

в форматном выводе числа.

Например, под Консольное приложение:

x = Convert.ToDouble(Console.ReadLine()); //вещественный тип

d = Convert.ToInt16(Console.ReadLine()); //целый тип

z = Convert.ToInt32(Console.ReadLine()); //целый тип

ch=Convert.ToChar(Console.ReadLine()); //символьный тип

Console.WriteLine("x={0,3:f} y={1,5:f}", x, y); //форматный вывод переменных х и у,

// где 0 и 1 номера вывода, 3 и 5 – количество выводимых символов,

// f – два символа после запятой

Например, под Оконное приложение

int а = int.Parse(textBox1.Text); //преобразование текста, введенного

// в textBox1 в целое число

double b = double.Parse(textBox1.Text); //преобразование текста, введенного

// в textBox1 в вещественное число

label3.Text = S.ToString()+ " руб."; // преобразование числа S в строку

label1.Text =String.Format(“{0:f 3}”,x); // преобразование числа x в строку c форматным выводом символов в компонент label1 через его свойство Text,

где 0 – индекс переменной, f – мантисса, 3 – количество символов после зпт.

label1.Text =String.Format(“{0,5:f 2}”,x); // преобразование числа x в строку c форматным выводом символов в компонент label1 через его свойство Text,

где 0 – индекс переменной, 5 – количество выводимых символов, f – мантисса, 2 – количество символов после зпт.

Соседние файлы в папке ЛК