Error del compilador CS0155

Actualización: noviembre 2007

Mensaje de error

El tipo detectado o producido debe derivarse de System.Exception
The type caught or thrown must be derived from System.Exception

Se intentó pasar un tipo de datos que no se deriva de System.Exception a un bloque catch. Sólo se pueden pasar a un bloque catch los tipos de datos derivados de System.Exception. Para obtener más información, vea Instrucciones de control de excepciones y Excepciones y control de excepciones (Guía de programación de C#).

El código siguiente genera el error 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
            {
            }
        }
    }
}