В нем говорится, что класс Derived не должен генерировать какое-либо исключение, которое не известно базовому классу, я пытаюсь выяснить, как он работает, в базовом классе я бросаю System.Exception, а в Derived я бросаю ArgNullException (). Может кто-нибудь объяснить, это нормально
class b
{
virtual public void foo()
{
try
{
if (true)
throw new System.Exception();
}
catch (Exception ex)
{
Console.WriteLine("in base");
}
}
}
class a : b
{
override public void foo()
{
try
{
if (true)
throw new ArgumentNullException();
}
catch (Exception ex)
{
Console.WriteLine("in dervied");
}
}
}