InvalidOperationException
Тип InvalidOperationException бросают, когда
объект жив, но операция в данный момент
недопустима - например, чтение закрытого
потока или повторный старт. Это не
NotSupportedException,
где возможность не заложена в тип. Перехват
оформляют через
catch.
Синтаксис
throw new InvalidOperationException("abcde");
Пример
Давайте бросим исключение и выведем
Message:
using System;
class Program
{
static void Main()
{
try
{
throw new InvalidOperationException("abcde");
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.Message);
}
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте поймаем исключение более общим
catch после конкретного:
using System;
class Program
{
static void Main()
{
try
{
throw new InvalidOperationException("abcde");
}
catch (InvalidOperationException)
{
Console.WriteLine("typed");
}
catch (Exception)
{
Console.WriteLine("other");
}
}
}
Результат выполнения кода:
"typed"
Пример
Давайте бросим исключение из метода и
обработаем в Main:
using System;
class Program
{
static void Run()
{
throw new InvalidOperationException("abcde");
}
static void Main()
{
try
{
Run();
}
catch (InvalidOperationException ex)
{
Console.WriteLine(ex.Message);
}
}
}
Результат выполнения кода:
"abcde"
Смотрите также
-
NotSupportedException,
когда операция не предусмотрена типом -
ObjectDisposedException,
когда объект уже закрыт -
блок
catch,
которым ловят исключение -
ArgumentOutOfRangeException,
когда неверный аргумент, а не состояние