在何处定义错误消息

时间:2013-10-27 16:49:34

标签: c# static

我正在制作我的第一个“真正的”C#程序,而我正在考虑应该在哪里定义错误消息?我应该这样做:

static class Error
{
    public static string Example { get { return "Example Error"; } }
}

我也可以在这里使用值而不是属性,但这仍然意味着我不能做这样的事情:

public static string FailedToParse(string filepath, string exmessage)
{
    return ("Failed to parse " + filepath + ".\n" + exmessage);
}

那么,这是一个好主意吗?我应该创建一个新类并为每个错误编写一个方法吗?你们是如何实现这一点的?为什么?

我已经阅读了

  1. In C#, what's the best way to store a group of constants that my program uses?
  2. The right way to use Globals Constants

1 个答案:

答案 0 :(得分:1)

我认为这是一切都应该自己解决的问题。

一个人喜欢向用户显示好消息,只需抛出那些默认生成的消息。

我个人喜欢错误代码。

这样的事情:

我创建了一个名为ExceptionFactory的静态类,只是将代码传递给名为RaiseException的方法。

public static class ExceptionRegions
{
  public static int Internet = 0xA;
  public static int FileSystem = 0xB;
}

public class InternetConnectionException : Exception
{
  public InternetConnectionException () : base("No internet connection available") { }
}

public class FileSystemAccessException : Exception
{
  public FileSystemAccessException () : base("Access to specified path caused an error") { }
}

public static class ExceptionFactory
{
  public static void RaiseException(int code)
  {
    switch(code)
    {
      case ExceptionRegions.Internet : throw new InternetConnectionException();
      ...
      ...
    }
  }
}

顺便说一下,这是一种众所周知的模式,称为工厂模式。 :)

为什么我喜欢这个,因为它允许我在我的应用程序中设置区域。 通常,应用程序有许多接口,例如文件系统,Web服务或数据库,我需要做的就是为每个区域创建一个代码,工厂将向用户抛出一条好消息而不暴露数据库和数字的用户名代码行或默认生成的错误消息看起来很相似。