一个库函数解析一个文件并返回一个对象。如果解析器遇到未知数据、缺失值等,它不应该抛出异常并停止解析(因为这不是致命的),但应该有一种方法将有关这些事情的信息传递给调用者(以便警告可以例如显示在 UI 中)。这些警告如何返回?我正在考虑将回调函数/对象传递到库中,还有其他可能的解决方案吗?
最佳答案
我会在解析器上轻松访问一组错误,如下所示:
public class Parser
{
public bool HasErrors {
get { return ParseErrors != null && ParseErrors.Count > 0; }
}
public List<string> ParseErrors { get; set; }
public object Parse(string fileName) {}
}
或者当然是您想要的任何错误类型,也许是更详细的内容。
调用您的库的代码看起来像这样:
var p = new Parser();
var o = p.Parse("file.txt"); //Get object
if(p.HasErrors) //Uh oh, abort, do something with p.ParseErrors
关于language-agnostic - 如何传递来自库的非致命警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2478050/