是否有有关使用System.CommandLine进行异常处理的最佳实践的文档?
我通过CommandHandler构建处理程序。创建并从控制台应用程序返回InvokeAsync的结果。
如何向我的应用程序用户报告异常?如果我在处理程序中尝试/捕获/日志并设置Environment.ExitCode,则它当然会被忽略,因为我返回的是InvokeAsync的结果,而我的处理程序只返回一个任务。
建议返回非零退出代码的模式是什么?
答案 0 :(得分:1)
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();
...
}