dotnet / dotnet/command-line-api

How do we implement exception handling around Command.Invoke?

Aperta
#796 40 commenti 16 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
C#
Stelle
3.7k
Fork
428
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I have created a simple .NET Core console application with this line to execute the `Command`
```
try
{
rootCommand.Invoke(args)
}
catch
{
Console.Error.Write("Something bad happened");
}
```

But when the command handler associated to the command throws an exception, the catch block isn't executed. Instead, the Invoke method returns a non-zero integer.

So, what's the correct method to handle exceptions around `Invoke`/`InvokeAsync`?

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con Command.Invoke e InvokeAsync, quindi traccia il modo in cui le eccezioni del gestore dei comandi associato diventano un valore restituito diverso da zero invece di raggiungere il blocco catch del chiamante. Confronta questo comportamento con l'esempio try/catch e stabilisci il contratto previsto per la gestione delle eccezioni per entrambi i punti di ingresso.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp
Ambito
cli
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.