Разделы презентаций


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

Исключение - это объект, генерирующий информацию о «необычном программном происшествии»Ошибка в программе допускается программистом при ее разработке.Ошибочная ситуация вызвана действиями пользователя.Исключительная ситуация - непредсказуемая и неотвратимая проблема.

Слайды и текст этой презентации

Слайд 1Обработка исключений

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

Слайд 2Исключение - это объект, генерирующий информацию о «необычном программном происшествии»

Ошибка

в программе допускается программистом при ее разработке.

Ошибочная ситуация вызвана действиями

пользователя.

Исключительная ситуация - непредсказуемая и неотвратимая проблема.
Исключение - это объект, генерирующий информацию о «необычном программном происшествии»Ошибка в программе допускается программистом при ее разработке.Ошибочная

Слайд 3Оператор try
В С# исключения представляются классами.
Все классы исключений порождены

от встроенного класса исключений Exception, который определен в пространстве имен

System.

try // контролируемый блок
{ /*Программные инструкции, которые нужно проконтролировать на предмет исключений*/
…}
catch //один или несколько блоков обработки исключений
{ /*Если исключение возникает в этом блоке, оно дает знать о себе выбросом определенного рода информации. Выброшенная информация может быть перехвачена и обработана*/
…}
finally //блок завершения
{ /*Любой код, который должен быть обязательно выполнен при выходе из блока try*/
…}


Оператор tryВ С# исключения представляются классами. Все классы исключений порождены от встроенного класса исключений Exception, который определен

Слайд 4
static void Main()
{

int x = int.Parse(Console.ReadLine());

int y =1 / x;
Console.WriteLine(y);
}

Исключительные ситуации :
пользователь может ввести нечисловое значение
если ввести значение 0, то произойдет деление на 0.

static void Main()    {      int x = int.Parse(Console.ReadLine());

Слайд 5 class Program{
static void Main()

{
try

{ int x = int.Parse(Console.ReadLine());
int y = 1 / x;
Console.WriteLine("y={0}", y);
Console.WriteLine("блок try выполнилсь успешно");
}
catch
{ Console.WriteLine("возникла какая-то ошибка"); }
Console.WriteLine("конец программы"); }
}

Когда возникает исключение, выполнение программы останавливается и управление передается блоку catch. Этот блок никогда не возвращает управление в то место программы, где возникло исключение.
Команды из блока try, расположенные ниже строки, в которой возникло исключение, никогда не будут выполнены.
Блок catch обрабатывает исключение, и выполнение программы продолжается с оператора, следующего за этим блоком.

class Program{    static void Main()    {

Слайд 6Вывод информации об ошибке
catch (Exception error)

{
Console.WriteLine("Возникла

ошибка {0}", error);
}

«выброшенная» информация будет записана в идентификатор error. Её можно просмотреть с помощью метода WriteLine.
Вывод информации об ошибке    catch (Exception error)     {

Слайд 7Стандартные классы исключений

Стандартные классы исключений

Слайд 8Операторы checked и unchecked
В С# предусмотрено специальное средство, которое связано

с генерированием исключений, вызванных переполнением результата в арифметических вычислениях.

static

void Main()
{
byte x = 200; byte y = 200;
byte result = (byte) (x + y);
Console.WriteLine(result);
}

произведение значений а и b превышает диапазон представления значений типа byte

Операторы checked и uncheckedВ С# предусмотрено специальное средство, которое связано с генерированием исключений, вызванных переполнением результата в

Слайд 9Операторы checked и unchecked
checked - для указания, что некоторое выражение

должно быть проконтролировано на предмет переполнения

unchecked – игнорирование переполнения

Операторы checked и uncheckedchecked - для указания, что некоторое выражение должно быть проконтролировано на предмет переполненияunchecked –

Слайд 10Можно задать (или отключить) проверку переполнения сразу для всего проекта.

Для этого необходимо выполнить следующие действия:

Щелкнуть правой кнопкой мыши на

имени проекта

В выпадающем меню выбрать Properties

В появившемся окне (см. рис.) выбрать слева страницу Build

Щелкнуть на кнопке Advanced

В появившемся окошке поставить или убрать галочку напротив Check for arithmetic overflow/underflow property.

Можно задать (или отключить) проверку переполнения сразу для всего проекта. Для этого необходимо выполнить следующие действия:Щелкнуть правой

Слайд 12Оператор checked имеет две формы:
проверяет конкретное выражение и называется операторной

checked-формой
 
checked ((тип-выражения) expr)
 
где expr — выражение, значение которого необходимо контролировать.


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

2) проверяет блок инструкций
 
checked
{
// Инструкции, подлежащие проверке
}

Оператор checked имеет две формы:проверяет конкретное выражение и называется операторной checked-формой checked ((тип-выражения) expr) где expr — выражение, значение

Слайд 13проверка конкретного выражения
static void Main()
{

byte x = 200; byte y

= 200;
try {
byte result = unchecked((byte)(x + y));
Console.WriteLine("1: {0}", result);
result = checked((byte)(x + y));
Console.WriteLine("2: ", result);
}
catch (OverflowException)
{ Console.WriteLine("возникло переполнение");
}
}

проверка конкретного выраженияstatic void Main()    {      byte x =

Слайд 14Контроль за блоком инструкций
class Program {

static void Main() {

byte n = 1; byte i;
try
{ unchecked //блок без проверки
{
for (i = 1; i < 10; i++) n *= i;
Console.WriteLine("1: {0}", n);
}
checked //блок с проверкой
{
n = 1;
for (i = 1; i < 10; i++) n *= i;
Console.WriteLine("2: ", n);
}
}
catch (OverflowException)
{
Console.WriteLine("возникло переполнение");
} } }

Контроль за блоком инструкцийclass Program  {    static void Main()    {

Слайд 15Генерация собственных исключений
Используя оператор throw, указав параметры, определяющие вид исключения

(параметром должен быть объект, порожденный от стандартного класса System.Exception).

Этот

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

Слайд 16static void Main() {

try
{

int x = int.Parse(Console.ReadLine());
if (x < 0) throw new Exception(); /* c помощью команды new был создан объект исключения типа Exception*/
Console.WriteLine("ok");
}
catch
{
Console.WriteLine("введено недопустимое значение");
}
}

static void Main()    {      try

Слайд 17При генерации исключения можно определить сообщение, которое будет «выбрасываться» обработчиком

исключений
static void Main()
{
try

{
int x = int.Parse(Console.ReadLine());
if (x < 0) throw new Exception("введено недопустимое значение");
Console.WriteLine("ok");
}
catch (Exception error)
{
Console.WriteLine(error.Message);
}
}

При генерации исключения можно определить сообщение, которое будет «выбрасываться» обработчиком исключенийstatic void Main()  {

Слайд 18Один try-блок можно вложить в другой. Исключение, сгенерированное во внутреннем

try-блоке и не перехваченное catch-инструкцией, которая связана с этим try-блоком,

передается во внешний try-блок.

Исключение, перехваченное одной catch-инструкцией, можно сгенерировать повторно, чтобы обеспечить возможность его перехвата другой (внешней) catch-инструкцией. Это позволяет нескольким обработчикам получить доступ к исключению.

Тип исключения должен совпадать с типом, заданным в catch-инструкции. В противном случае это исключение не будет перехвачено.

Можно перехватывать все исключения, используя catch-инструкцию без параметров.

С try-блоком можно связать не одну, а несколько catch-инструкций. В этом случае все catch-инструкции должны перехватывать исключения различного типа.


Один try-блок можно вложить в другой. Исключение, сгенерированное во внутреннем try-блоке и не перехваченное catch-инструкцией, которая связана

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика