Why base class's try-catch doesn't catches exception thrown in derived class? Did I missed something?
Base class:
public class UmBase
{
    protected Thread ThisThread;
    protected UmBase(int cycleMs, UpdateManager updateManager,
                     string loggerFilename, string loggerFolder = "UpdateManager")
    {
    }
    public void Start()
    {
        ThisThread = new Thread(Work);
        ThisThread.Start();
    }
    public virtual void Iteration()
    {
        throw new Exception("Iteration Method should be overidden!");
    }
    public void Work()
    {
        while (IsProcessing)
        {
            try
            {
                Iteration();
            }
            catch (Exception exception)
            {
                Log.Error(exception.Message); //WANT TO HANDLE IT HERE
            }
            finally
            {
                Sleep(100);
            }
        };
    } 
}
Derived class:
public class ReadParams : UmBase
{
    public ReadParams(UpdateManager updateManager, int cycleMs = 60000)
        : base(cycleMs, updateManager, "sss")
    {
        Iteration();
    } 
    public override void Iteration()
    {
        try
        {
            DbParams.Set(); //EXCEPTION IS THROWN INSIDE
        }
        catch (Exception exception)
        {
            throw new Exception("Oops!", exception);
        }
    }
}
I've read here Can we catch exception from child class method in base class in C#? and can't find my mistake.
 
     
     
     
     
    