OutOfMemoryException
Класс OutOfMemoryException бросает CLR,
когда выделить блок памяти не получается.
Ловить его и продолжать работу обычно
бесполезно. В примерах не вызывают настоящий
OOM - демонстрируют throw new OutOfMemoryException()
и вывод "fail" в catch.
Синтаксис
throw new OutOfMemoryException();
catch (OutOfMemoryException) { }
Пример
Давайте поймать OutOfMemoryException:
using System;
class Program
{
static void Main()
{
try
{
throw new OutOfMemoryException();
}
catch (OutOfMemoryException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Пример
Давайте вывести имя типа:
using System;
class Program
{
static void Main()
{
try
{
throw new OutOfMemoryException();
}
catch (OutOfMemoryException ex)
{
Console.WriteLine(ex.GetType().Name);
}
}
}
Результат выполнения кода:
"OutOfMemoryException"
Пример
Давайте перехватить его как Exception:
using System;
class Program
{
static void Main()
{
try
{
throw new OutOfMemoryException();
}
catch (Exception ex)
{
Console.WriteLine(ex is OutOfMemoryException);
}
}
}
Результат выполнения кода:
True
Смотрите также
-
исключение
StackOverflowException,
которое тоже связано с ресурсами среды -
класс
Exception,
от которого наследует OutOfMemoryException -
исключение
IOException,
которое возникает при работе с файлами -
исключение
UnauthorizedAccessException,
которое перехватывают отдельной веткой