Just tested that in C# and it seems they made the smart decision to not allow shenanigans like that in a finally block:
CS0157 Control cannot leave the body of a finally clause
CS0157 Control cannot leave the body of a finally clause
while (true)
{
try
{
try { return; }
finally { throw new Exception(); }
}
catch { }
}