Nello script #175 si è visto come mostrare il dettaglio degli errori a scopo diagnostico. In una situazione normale, mentre il servizio è in produzione, è sconsigliato però tenere attivo la modalità verbosa, ma piuttosto restituire degli errori più comprensibili al chiamante, laddove abbia un senso informarlo, magari a causa di un suo input.
A tal proposito sulla classe DataService<T> viene in aiuto il metodo HandleException che attraverso al suo argomento permette di gestire alcuni aspetti. Prima di tutto è possibile scegliere se attivare UseVerboseErrors in funzione dell'eccezione ottenuta tramite la proprietà Exception. Quest'ultima può facoltativamente essere sostituita con un'altra e usata come messaggio di errore.
Nel codice seguente si valuta l'eccezione e nel caso sia un errore inerente al DB si personalizza l'errore mediante un DataServiceException. Negli altri casi verrà invece restituito un generico errore.
public class ProductsService : DataService<Products> { protected override void HandleException(HandleExceptionArgs args) { base.HandleException(args); if (args.Exception is DbException) args.Exception = new DataServiceException("Errore di accesso al database"); } }
E' possibile inoltre, con ResponseStatusCode, personalizzare lo status code da restituire all'utente. Normalmente questo valore, in caso di errore, è 500.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Creare una libreria CSS universale: Cards
- Eseguire script pre e post esecuzione di un workflow di GitHub