Nel nostro codice base, vedo un sacco di codice come questo
var error = ValidatePhoneNumber(userId, phoneNumber);
//if validation fails, return error
if(!string.IsNullOrEmpty(error))
{
return error;
}
Se stavo scrivendo questo, avrei appena avuto ValidatePhoneNumber (userId, phoneNumber) lanciare l'errore e chiamare il metodo all'interno di un blocco try / catch. L'unica ragione per cui posso pensare a questo tipo di pratica è che gli errori di lancio / cattura possono diventare costosi. Le preoccupazioni relative alle prestazioni richiedono davvero questo tipo di gestione degli errori? Oppure un pattern try / catch sarebbe più utile in questa situazione?
Ho visto post come questo , e vedo che ci sono alcune piccole differenze di prestazioni nell'inclusione delle eccezioni, ma sono abbastanza grandi da interessare la maggior parte delle applicazioni?
(Lavoro principalmente nel framework .NET, se questo fa la differenza per la risposta)