Do not throw exceptions in finalizer blocks, as it can terminate the whole process if handled incorrectly.
From the official documentation: “If Finalize or an override of Finalize throws an exception, and the runtime is not hosted by an application that overrides the default policy, the runtime terminates the process and no active try/finally blocks or finalizers are executed”.