Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Sergey Skvortsov                     2:5020/400     13 Nov 2003  20:56:34
 To : Mikhail Polykovsky
 Subject : Re: Re[2]: Hаследование?
 -------------------------------------------------------------------------------- 
 
 Mikhail Polykovsky пишет:
 
 SS>> то что ты хочешь - странно и противоестественно,
 MP> А почему? (хоть в мыло напиши, если здесь
 
 оффтопик). Я просто хочу
 
 MP> создать несколько классов, умеющих внятно
 
 объяснить, что с ними
 
 MP> приключилось. Посоветуешь другой вариант?
 
 ты смешиваешь ошибки класса и ошибки объекта
 класса. первое - нечто дикое. ошибки у класса это
 когда в new() передана какая-то фигня?
 
 тогда два варианта:
 1. кидаем exception - например по croak - и ловим
 внешним eval {}
 
 my $c;
 eval  {
   $c=Clone->new();
 };
 die "wow! ",$@
   if $@;
 
 2. возвращаем undef - и детектим по проверке
 результата
 my $c=Clone->new();
 die "yo! can't create an instance of Child"
   unless defined $c;
 
 В общем случае exception'ы имеют больший overhead
 нежели проверка результата - но для проверки
 корректности аргументов функции/метода следует
 применять скорее их.
 
 Хранить в классе/объекте аналог C-шного errno (как
 у тебя) - чревато.
 Хотя бы тем, что его надо очищать после/внутри
 каждого вызова, где он применим.
 
 Это просто концептуально неправильно - смешение
 парадигм.
 Впрочем, если это run-away скрипт - то пиши как
 хочешь.
 
 Hо коль есть желание сделать что-то для вечности -
 продумай все еще раз :)
 
 Hу и по коду - самостоятельные упражнения:
 
 Child->errstr();
 Child->set_err('bla-bla-bla');
 
 уж хотя бы проверяй на ref.
 
 -- 
 Sergey Skvortsov
 mailto: skv@protey.ru
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5.1
  * Origin: Talk.ru (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Hаследование?   Mikhail Polykovsky   13 Nov 2003 18:22:13 
 Re: Hаследование?   Artem Chuprina   13 Nov 2003 18:41:20 
 Re[2]: Hаследование?   Mikhail Polykovsky   13 Nov 2003 19:26:28 
 Re[2]: Hаследование?   Andrew Alakozow   13 Nov 2003 20:50:54 
 Re: Re[2]: Hаследование?   Artem Chuprina   14 Nov 2003 14:58:55 
 Re[4]: Hаследование?   Mikhail Polykovsky   14 Nov 2003 16:31:57 
 Re: Hаследование?   Sergey Skvortsov   13 Nov 2003 20:03:18 
 Re[2]: Hаследование?   Mikhail Polykovsky   13 Nov 2003 20:28:32 
 Re: Re[2]: Hаследование?   Sergey Skvortsov   13 Nov 2003 20:56:34 
 Re[4]: Hаследование?   Mikhail Polykovsky   13 Nov 2003 22:05:19 
 Re: Re[4]: Hаследование?   Sergey Skvortsov   13 Nov 2003 23:27:55 
 Re: Hаследование?   Alexey Mahotkin   13 Nov 2003 23:43:28 
 Re: Hаследование?   Sergey Skvortsov   14 Nov 2003 16:54:12 
 Re[2]: Hаследование?   Andrew Alakozow   13 Nov 2003 21:00:52 
 Hаследование?   Andrew Alakozow   13 Nov 2003 21:08:26 
 Re: Hаследование?   Sergey Skvortsov   14 Nov 2003 16:58:33 
 Hаследование?   Andrew Alakozow   14 Nov 2003 18:32:34 
Архивное /ru.perl/64884c5bdb13.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional