2

我正在制作我的第一个“真正的”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. 在 C# 中,存储我的程序使用的一组常量的最佳方式是什么?
  2. 使用全局常量的正确方法
4

1 回答 1

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 服务或数据库,我需要做的就是为每个区域创建一个代码,工厂会向用户抛出一个很好的消息,而不会暴露数据库的用户名和编号代码行或任何默认生成的错误消息看起来相似。

于 2013-10-27T17:45:21.730 回答