Ошибка компилятора 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
}
}