使用字典是一种处理错误的有效方法吗?

时间:2012-04-18 17:23:35

标签: .net exception error-handling

正如大家可能已经注意到的,现在你得到的不同程序的错误总是有错误ID号,这实际上意味着发生了什么。

我想也许有一个Dictionary<int,string>是个好主意,当int是错误ID时,字符串是对发生的事情的描述。

例如:

ErrorID: 404
Description: Page not found

我问这个是因为我发现了一个缺点,并且不确定它是否是一个大问题(也许我只是不知道它是如何完成的)。 作为一名程序员,一旦你遇到异常,你究竟会如何将它与错误ID相关联? (因此,您最终可以为用户提供Description,说明他的操作无法解决的原因。)

谢谢。

1 个答案:

答案 0 :(得分:2)

您正在尝试转置良好的旧错误代码模式。当您处理无异常语言(例如C)或黑盒/远程进程(HTTP请求)时,这是一个很好的做法。

在.net中,您可以使用包含错误消息的异常:

throw new Exception("File not found");

甚至创建自己的例外:

class FileNotFoundException : Exception
{
  public FileNotFoundException() : base("File not found") {}
}

用法:

throw new FileNotFoundException();

所以,答案是:对于不经常发生的错误,处理错误代码可能是一个很好的模式。 .NET字典很快,但是有一些开销。但你的问题与i18n的关系并不是那么远。

真正的问题是:您更喜欢错误代码还是例外?