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


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

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

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

Предыдущее предложение "catch" уже перехватывает все исключения данного типа или супертипа ("тип")
A previous catch clause already catches all exceptions of this or of a super type ('type')

Группа операторов catch должна быть в порядке уменьшения поколения наследования. Например, первым должен находиться самый дальний в цепочке наследования объект.

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

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

// CS0160.cs
public class MyClass2 : System.Exception {}
public class MyClass
{
   public static void Main()
   {
      try {}

      catch(System.Exception) {}   // Second-most derived; should be second catch
      catch(MyClass2) {}   // CS0160  Most derived; should be first catch
   }
}