错误处理 - 全局错误目录?

时间:2014-04-14 14:40:37

标签: c#

当我编写C代码时,我可能已将全局#defines用于错误编号。我不能用C#做到这一点。我可以使用错误类,但我必须传递它。拥有全局错误目录类真的是一个非常严重的错误吗?例如,包含错误和消息字典的类?如何更好地处理?

好的,我本可以更清楚......抱歉。

假设我正在访问不同类中的数据库或多个数据库。如果我在访问数据库时遇到错误,我想显示某种错误消息,但我不一定要显示系统生成的错误消息 - 我有自己的错误目录,我想使用它。假设我有一个标准的“数据库访问错误”字符串,我想要显示,但我想添加数据库名称和表。我可以用C中的几个#defines实现这一点。我应该用c#处理它 - 一个包含字典的全局可访问的单例类?这是件坏事吗?

2 个答案:

答案 0 :(得分:1)

如果您想定义一个包含适合您的代码和消息的自定义词典,但这不是一个好习惯。如果您的代码变得越来越大,为您的异常提供有意义的名称比代码更好。想想当一个项目中有多个人工作时,如果你使用一个自定义类,那么当intellisense会提供帮助时会更容易。

在c#中它以不同的方式工作,你可以为你定义的这样的C代码使用自定义异常类

using System;

public class EmployeeListNotFoundException: Exception
{
    int _codeException; 
    public EmployeeListNotFoundException()
    {

    }

    public EmployeeListNotFoundException(string message,int codeException)
        : base(message)
    {
                  _codeException=codeException; 
    }

    public EmployeeListNotFoundException(string message, Exception inner)
        : base(message, inner)
    {

    }
   public int CodeException{get {return _codeException;} }
}

答案 1 :(得分:0)

如果它的坏或不依赖于代码库的大小,应用程序或程序的类型以及体系结构。您可以将体系结构视为一组约束,强制执行代码的某种“样式”。如果架构规定在全局范围内有东西是坏的那么你应该避免它。如果您仍然希望将错误代码信息保存在全局范围内,我建议将您的只读字典包装在单例中。