Exception-Driven Flow Control Is Lying to Your Callers
Relying on exceptions for outcomes you actually expect — a missing record, a failed validation rule — treats ordinary business decisions as catastrophic system faults. It hides intent, costs more at runtime than it needs to, and pushes noise into places that shouldn't have to deal with it, like Blazor components. This is a practical look at moving to the Result pattern instead: explicit success and failure as part of the method signature, no more defensive try/catch scattered through the UI, and a service layer that tells the truth about what it can actually do.