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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Sergey Velikanov                     2:5020/400     07 Nov 2006  21:47:25
 To : All
 Subject : Обработка ошибок в классах
 -------------------------------------------------------------------------------- 
 
 Добрый день
 
 Есть у меня класс Filter который работает с базой
 данных, у него есть метод save
 
 sub save 
 {
  my $self = shift;   
 ...
  my $sth = $dbh->do("update filters set
 filter_name=$filter_name ....
    if ($DBI::err)       
             
        
      { $self->{ERROR}  = $DBI::err;    
             
        
        $self->{ERROR_STR} = $DBI::errstr;  
             
        
      } 
 }
 
    sub error {          
             
       
   my $self = shift;        
             
        
   return $self->{ERROR};       
             
        
     }              
             
        
             
             
        
     sub error_str {         
             
        
   my $self = shift;        
             
        
   return $self->{ERROR_STR};    
             
        
     }           
 
 те по задумке, если возникнет ошибка то я смогу ее
 позже распознать по $filter->error, что
 реализовано след образом
 
 $filter->save(); 
 push @error_str,$filter->errstr if ($filter->error); 
 ....
 print_error(@error_str)
 
 но на деле получается, что если ошибка в sql то в
 лог апача вываливается
 
 [Tue Nov 07 19:49:13 2006] [error] [client
 192.168.125.100] DBD::mysql::db do failed: You
 have an error in your SQL syntax; check the manual
 that corresponds to your MySQL server version for
 the right syntax to use near  '[skip]' at line 1
 at ../CP/Filter.pm line 81., referer:
 http://192.168.125.21/filter/filters_edit.pl
 [Tue Nov 07 19:49:13 2006] [error] [client
 192.168.125.100] Can't locate object method
 "errstr" via package "Filter" at
 /var/www/htdocs/filter/filters_edit.pl line 52.,
 referer: http://192.168.125.21/filter/filters_edit.pl
 
 и скрипт умирает не выводя сообщение об ошибке,
 как сделать чтобы он не умирал и мог обработать
 ошибку?
 -- 
 Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
 --- ifmail v.2.15dev5.3
  * Origin: Talk.ru (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Обработка ошибок в классах   Sergey Velikanov   07 Nov 2006 21:47:25 
 Re: Обработка ошибок в классах   Orlovsky Alexander   08 Nov 2006 12:35:13 
 Re: Обработка ошибок в классах   Ivan Frolkov   08 Nov 2006 13:12:00 
 Re: Обработка ошибок в классах   Artem Chuprina   08 Nov 2006 14:46:34 
 Re: Обработка ошибок в классах   Ivan Frolkov   08 Nov 2006 15:10:02 
 Re: Обработка ошибок в классах   Artem Chuprina   08 Nov 2006 17:16:28 
Архивное /ru.perl/6488714226a7.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional