Are you rethrowing your exceptions correctly in C#? | Result Object a better way | .NET