dotnet The answer is in the Result, just don't throw; Exceptions are expensive and hard to read. Discover how using the Result monad from functional programming can improve your app's performance and code readability