Jef*_*eff 6 c# .net-core dragonfruit
是否有有关 System.CommandLine 异常处理最佳实践的文档?
我通过 CommandHandler.Create 构建一个处理程序,并从控制台应用程序返回 InvokeAsync 的结果。
如果向应用程序的用户报告异常情况,我应该怎么做?如果我在处理程序中尝试/捕获/登录并设置Environment.ExitCode,它当然会被忽略,因为我返回 InvokeAsync 的结果,而我的处理程序除了任务之外不返回任何内容。
返回非零退出代码的推荐模式是什么?
CommandHandler.Create 方法有一些重载,您可以在其中返回int用作 ExitCode 的值
public static class CommandHandler
{
...
public static ICommandHandler Create(Func<int> action) =>
HandlerDescriptor.FromDelegate(action).GetCommandHandler();
public static ICommandHandler Create<T>(
Func<T, int> action) =>
HandlerDescriptor.FromDelegate(action).GetCommandHandler();
...
}
Run Code Online (Sandbox Code Playgroud)