2013-10-27 75 views
1

我正在做我的第一个“真正的”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

我想这是一切都应该自己弄清楚。

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

我个人喜欢有错误代码。

事情是这样的:

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