我可以在其他程序中使用用户定义的例外(如类库)吗?

时间:2014-12-16 05:00:34

标签: c# exception-handling

这段代码效果很好,但如果我想在其他程序中使用它,我该怎么做?

是否可以像类库一样创建异常?如果是,怎么样?

namespace Exception_CreatingUserDefined
{
    public class FirstOperandSmallException : Exception
    {
        public FirstOperandSmallException(String message) : base (message)
        {
        }       
    }

    public class operation
    {
        int op1, op2;

        public void operatn()
        {
            if(op1 < op2)
            {
                throw (new FirstOperandSmallException("First Operand Should not be Small"));
            }
            else {
                //Do nothing
            }
        }
    }

    class Test
    {
        static void Main(string[] args)
        {
            operation opr = new operation();
            try
            {
                opr.operatn();
            }
            catch(FirstOperandSmallException e) 
            {
                Console.WriteLine("FirstOperandSmallException : {0}",e.Message);
            }
            Console.Read();
        }
    }
}

2 个答案:

答案 0 :(得分:2)

正如Kenny所说,通过简单地包含你的命名空间,你就可以使用你在其中定义的任何公共类。为此,请执行以下操作:

  • 将您的异常类(和所需的构造函数)公开。
  • 将此程序集的输出类型更改为&#39; Library&#39;类型。为此,请右键单击项目并转到“属性”,然后将输出类型设置为“库”。

此外,类库的常见做法是删除main(入口)代码,因此它只有类和方法。

答案 1 :(得分:1)

我会问为什么你需要首先创建这样的Exception。您不能使用自定义例外添加任何其他属性。如果是我,我会抛出InvalidOperationException而不是创建自定义异常。

如果您需要获取进入Exception的其他数据,或者您需要专门捕获该异常的代码,我只会创建一个自定义异常。该框架有许多可以使用的内置异常,涵盖了一系列问题。