Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2011, 14:30   #11
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Насколько я знаю, нет.
но я бы делал так...
Код:
using System;

class MyClass
{ 
     static double SafeDiv(int a,int b)
     {
         if (b == 5)
         {
             throw new Exception("Делить на пятёрку нельзя!");
         }
         else
         {
             return (double)a/b;
         }
     }
     static void Main()
     {
          double x;
          try
          {
                x = SafeDiv(2,5);
          }
          catch(Exception t)
          {
               Console.WriteLine(t.Message);
          }
          Console.ReadLine();
     }
}

Хотя, если вы гарантированно знаете, что другие исключения точно не произойдут, то можно так....
Код:
using System;
class MyClass
{ 
     static double SafeDiv(int a,int b)
     {
         if (b == 5)
         {
             throw new Exception("Hello World");
         }
         else
         {
             return (double)a/b;
         }
     }
     static void Main()
     {
          double x;
          try
          {
                x = SafeDiv(2,5);
          }
          catch
          {
               Console.WriteLine("Делить на пятёрку нельзя!");
          }
          Console.ReadLine();
     }
}
P.S. Оба варианта кода работают, проверил.

Последний раз редактировалось _-Re@l-_; 14.04.2011 в 14:33.
_-Re@l-_ вне форума Ответить с цитированием
Старый 14.04.2011, 14:49   #12
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

благодарю) то есть получается, что мы выносим саму операцию , которая может вызвать ошибку в некий дополнительный блок....кстати, там как-то можно узнать строчку, в которой происходит ошибка....получается, что это -
Цитата:
Код:
x = SafeDiv(2,5);
?
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 14.04.2011, 14:58   #13
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Рекомендую (помимо Шилдт-а, который скорее как справочник юзается) вот эту книжечку к прочтению как от корки до корки, так и по интересующим разделам

З.Ы.: там есть ссылочка "файлы к книге" - рекомендую качнуть и заценить 3 проекта к 7й главе
З.Ы.2: книгу вполне себе можно нарыть на просторах в формате дежавю (ах, ну да - читать не обучены )
soleil@mmc вне форума Ответить с цитированием
Старый 17.04.2011, 20:55   #14
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

soleil@mmc, +1)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 19.04.2011, 16:08   #15
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

не знает ли кто - можно ли как-то изменить сообщение, которое содержит исключение , просто переопределив конструктор Exeption -
Код:
public CustomException(string message)
который использует string-сообщение?
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 19.04.2011, 16:19   #16
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А что именно вам нужно? В смысле, определить свой тип исключения, в котором конструктор принимает некое сообщение, или нечто подобное...
Код:
class MyExc : Exception
{
       private string ExcMess;
        // ...
      public MyExc(string message)
      {
            ExcMess = message+"Hello,World";
          // ..
      }
}

Цитата:
кстати, там как-то можно узнать строчку, в которой происходит ошибка....получается, что это -
Да, через препроцессор.
_-Re@l-_ вне форума Ответить с цитированием
Старый 19.04.2011, 16:27   #17
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

_-Re@l-_, спасибо за пример , но вот уточню вопрос -
можно ли при вызове конструктора без параметров для пользовательского исключения, всё-таки в самом исключении измудриться записать что-то стандартное в Message ?
то есть - в не зависимости от использвованного во внешнем коде конструктора получить при вызове Message пользовательское описание исключения?
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 19.04.2011, 17:39   #18
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

кажется, можно так сделать -
Код:
 public SetEception(): base(String.Format("{0}","1234")) ;
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 20.04.2011 в 11:58.
vedro-compota вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Определить Класс описывающий матрицу. С++ varlonec Помощь студентам 1 26.01.2010 18:37
Определить класс описывающий додекаэдр. С++ varlonec Помощь студентам 0 26.01.2010 18:23
определить класс описывающий вектор.С++ varlonec Помощь студентам 0 26.01.2010 17:47
определить класс описывающий матрицу. С++ varlonec Помощь студентам 0 26.01.2010 17:34
коэффициент уравнения, описывающий касательную к эллипсу CrossDeLena Помощь студентам 2 26.09.2008 20:31