2014-12-16 1 views
1

Этот кусочек кода работает хорошо, но если я хочу использовать его в других программах, как я могу это сделать?Могу ли я использовать пользовательские исключения в других программах (например, библиотеку классов)?

Возможно ли создать исключение, например, библиотеку классов? Если да, то как?

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(); 
     } 
    } 
} 
+1

Да, вы можете использовать его, как и любую другую встроенную в .NET ссылку на исключение, ссылаться на dll, добавляя 'using namespace Exception_CreatingUserDefined', а затем использовать его. – kennyzx

ответ

2

Как сказал Кенни, просто включая пространства имен вы можете использовать любые общественные классы, которые вы определили в нем. Для этого выполните следующие действия:

  • Сделайте свой класс исключений (и желаемые конструкторы) общедоступными.
  • Измените тип вывода этой сборки на тип «Библиотека». Для этого щелкните правой кнопкой мыши свой проект и перейдите в «Свойства» и установите тип вывода как «Библиотека».

Также, общая практика с библиотеками классов заключается в том, чтобы удалить код main (вход), поэтому он имеет только классы и методы.

+1

Добавьте следующие шаги для завершения ответа: 1. установите тип вывода = Библиотека классов в панели свойств проекта, 2. Отметьте FirstOperandSmallException как общедоступный. – kennyzx

1

Я бы спросил, почему вам необходимо создать исключение, подобное этому, в первую очередь. Вы не добавляете никаких дополнительных свойств со своим специальным исключением. Если бы это был я, я бы просто выбросил InvalidOperationException и не создал настраиваемое исключение.

Я бы создал только пользовательское исключение, если у вас есть дополнительные данные, необходимые для того, чтобы попасть в ваше исключение, или если у вас есть код, который должен специально поймать это исключение. В структуре есть много встроенных Исключений, которые вы можете использовать, которые охватывают целый ряд проблем.

+0

Спасибо @Mike. На данный момент мне не нужно создавать настраиваемое исключение. Но я просто хотел узнать «как». Приведенный здесь пример - это просто указание, как мне нужно создать пользовательский. – Balaji

+1

Вы должны прочитать эту ссылку http://msdn.microsoft.com/en-us/library/vstudio/ms229064%28v=vs.100%29.aspx о том, как создать настраиваемое исключение. Например, ваше настраиваемое исключение должно быть сериализуемым. –

Смежные вопросы