gpt4 book ai didi

c# - 在哪里定义错误信息

转载 作者:太空宇宙 更新时间:2023-11-03 13:33:22 25 4
gpt4 key购买 nike

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

最佳答案

我认为这是一切都应该自己弄清楚的事情。

一个喜欢向用户显示漂亮的消息,另一个只是抛出那些默认生成的消息。

我个人喜欢错误代码。

像这样:

我创建了一个名为 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();
...
...
}
}
}

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

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

关于c# - 在哪里定义错误信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19620640/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com