Поделиться через


Ошибка компилятора CS0155

Обновлен: Ноябрь 2007

Сообщение об ошибке

Перехваченные или сгенерированные типы должны быть производными от System.Exception
The type caught or thrown must be derived from System.Exception

Выполнена попытка передачи типа данных, который не является производным от System.Exception, в блок catch. Только типы данных, которые является производными от System.Exception, могут быть переданы в блок catch. Дополнительные сведения см. в разделах Операторы обработки исключений и Исключения и обработка исключений (руководство по программированию в C#).

Следующий пример приводит к возникновению ошибки CS0155:

// CS0155.cs
using System;

namespace MyNamespace
{
    public class MyClass2
    // try the following line instead
    // public class MyClass2 : Exception
    {
    }
    public class MyClass
    {
        public static void Main()
        {
            try
            {
            }
            catch (MyClass2)   // CS0155, resolves if you derive MyClass2 from Exception
            {
            }
        }
    }
}