language-agnostic - 如何传递来自库的非致命警告

标签 language-agnostic error-handling

一个库函数解析一个文件并返回一个对象。如果解析器遇到未知数据、缺失值等,它不应该抛出异常并停止解析(因为这不是致命的),但应该有一种方法将有关这些事情的信息传递给调用者(以便警告可以例如显示在 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/

相关文章:

language-agnostic - "program to an interface"是什么意思?

asp.net-mvc - “The controller for path '…' was not found or does not implement IController.”触发500,而不是404

c# - 使用 div 显示错误

c# - 处理来自 RestSharp 的错误响应的正确策略是什么?

java - 数字的 double

language-agnostic - DRY 没有单个代码?

language-agnostic - 断言()与强制(): Which to choose?

language-agnostic - 我如何说服我的共同程序员不要偏执 “just to be sure programming”?

php - 忽略 php 标记错误

javascript - 获取 API 错误处理