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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2011, 19:10   #1
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию Класс , описывающий исключения.

Доброго времени суток)
Не знает ли кто - как может выглядеть класс, который описывает исключения? Не соображу - чем именно там должны являться исключения...-полями что ли...
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 13.04.2011, 19:13   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

может стоит у препода спросить?

ибо сам Exception вполне самодостаточен(+его дети так сказать)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.04.2011, 19:17   #3
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

ну) просто необходима практика в создании собственных исключений...например, кажется можно сообщение разместить в исключении с помощью одного из конструкторов.....а потом это сообщение вывести на экран.
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

Последний раз редактировалось vedro-compota; 13.04.2011 в 19:19.
vedro-compota вне форума Ответить с цитированием
Старый 13.04.2011, 19:25   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если исходного класса(или готовых) недостаточно то обычно пишут свой
причины:
1)нужно дополнительные данные хранить в объекте исключения(например в интерпретаторе позицию ошибки)
2)нужен специализированный конструктор для удобного создания исключений
3)нужен отдельный тип исключений для специализации обработчиков
обычно 2 и 3 всегда вместе.

то есть для самого себя вопрос возник? не изза препода?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 13.04.2011 в 20:17.
Пепел Феникса вне форума Ответить с цитированием
Старый 14.04.2011, 06:43   #5
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Пепел Феникса, вообще в задании так написано - что де желательно бы собственный класс исключений, но я тоже читал, что стандартных исключений почти всегда достаточно.)
но создать свой класс - интересно - тем более что непонятно как может один класс несколько исключений описать....-чтобы их можно было в других классах использовать)
-----------
но узнаю сегодня - напишу сюда)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 14.04.2011, 07:47   #6
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

В общем то, пользовательский класс исключений должен наследовать класс Exception и перегружать все его стандартные конструкторы - а все остальное на ваше усмотрение.
_-Re@l-_ вне форума Ответить с цитированием
Старый 14.04.2011, 13:47   #7
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

Цитата:
В общем то, пользовательский класс исключений должен наследовать класс Exception и перегружать все его стандартные конструкторы - а все остальное на ваше усмотрение.
_-Re@l-_, спасибо)
собственно, так и оказалось - препод сказал, что можно создать класс который в зависимости от переданных параметров реализует конкретное исключение (видимо варианты при перегрузке конструктора), но ещё лучше написать ряд отдельных классов)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
vedro-compota вне форума Ответить с цитированием
Старый 14.04.2011, 13:58   #8
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

бхыхы
напоминает одесский анекдот про "даже если вы туда не пойдете, то набережная там все равно будет"
я к чему это все - а если бы препод не сказал?
ртфм однозначно - см. здесь
soleil@mmc вне форума Ответить с цитированием
Старый 14.04.2011, 14:16   #9
vedro-compota
любитель-далеко не
Участник клуба
 
Аватар для vedro-compota
 
Регистрация: 13.04.2010
Сообщений: 1,156
По умолчанию

просто , думалось, что существует некая культура оформления подобных классов...вот Риэл примерно и объяснил...msdn - это да...
вообще исключения, это пожалуй самая мутно объясняемая тема....нигде не пишут как например, создать исключение, которое бы отслеживало "ошибочное " деление на 5 .....вот что истинно требуется изучающим....то есть не понятно -как же создать шаблон-то , который ситуацию описывает......м-да.
--------------------
насчёт объяснений -это я в смысле учебников, потому как там (у Шилтда, например) исключения создают впечатление чего-то чисто формального - то есть мы генерируем исключение там, где и так, например, можем проверить деление на ноль . или , опять же - выход за границы массива.
деление -
Код:
class ExceptionTest
{
    static double SafeDivision(double x, double y)
    {
        if (y == 0)
            throw new System.DivideByZeroException();
        return x / y;
    }
    static void Main()
    {
        // Input for test purposes. Change values
        // to see exception handling behavior.
        double a = 98, b = 0;
        double result = 0;

        try
        {
            result = SafeDivision(a, b);
            Console.WriteLine("{0} divided by {1} = {2}", a, b, result);
        }
        catch (DivideByZeroException e)
        {
            Console.WriteLine("Attempted divide by zero.");
        }
    }
}
против абортов=за + жизнь;.фкн вгу;_______________________мойблг

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

вообще , можно ли создать исключение , которое при перехвате его (пустым catch()) и выводе на экран напишите-
Цитата:
" (!)Error: произошло недопустимое деление на 5-ку! делить на 5-ку нельзя так как это лучшая оценка!"
знает кто? если да - прошу хотя бы намекнуть как это сделать.)
против абортов=за + жизнь;.фкн вгу;_______________________мойблг
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