none
Исключения при ошибке чтения или записи в память RAM RRS feed

Ответы

  • Большинство ваших вопросов, насколько я помню, было по C#. Поэтому о нём, родимом, и поговорим.

    В управляемой среде .NET CLR как таковой прямой доступ к памяти запрещён. Поэтому возможны лишь исключения, косвенно связанные с чтением или записью в память.

    Например, при создании какого-нибудь объекта

    var someObject = new SomeClass();

    может банально кончиться память. В таком случае будет выброшено исключение OutOfMemoryException.

    При доступе к коллекции по индексу

    for (int i = 0; i < length; i++)
        collection[i] = value;

    если индекс выйдет за диапазон допустимых значений, будет выброшено исключение IndexOutOfRangeException. В неуправляемых языках, типа C/C++, при этом произошёл бы так называемый "расстрел" памяти. Или чтение мусора из памяти.

    При доступе к неициализированному объекту произойдёт исключение NullReferenceException. Думаю, это тоже можно косвенно отнести к ошибкам доступа к памяти.

    -----

    Особняком стоят исключения в неуправляемом коде, которые могут быть проброшены в управляемый код из нативных библиотек. Чаще всего при этом самым разумным выбором оказывается просто "упасть".

    Если интересно, то искать по ключевым словам Win32Exception, SEHException, Structured Exception Handling, Corrupted State Exceptions.

    • Помечено в качестве ответа Энтомолог 12 июля 2016 г. 5:56
    6 июля 2016 г. 15:03