|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 04 Jun 2002 15:25:42 To : Roman Skvirskij Subject : Re: Запретить вывод ошибок -------------------------------------------------------------------------------- Roman Skvirskij wrote: > Hello, Andrey! > You wrote to Roman Skvirskij on Tue, 4 Jun 2002 10:21:56 +0000 (UTC): > > AS> Roman Skvirskij wrote: > >> Проблема следующая - как в перловом сценарии запретить вывод ошибок и > >> предупреждений? Ошибки я обрабатываю, а вот сообщения хотелось бы > >> убрать. > > AS> 1. Разобраться в причине их возникновения и ликвидировать причину. > AS> 2. Если так и положено ругаться в данном месте (вероятность 1 к 10 > AS> 000) > > Hеправильно. Сервер БД может быть недоступен по многим причинам. Да ради Бога, пусть будет недоступен. $dbh = DBI->connect($data_source, $user, $pass, { PrintError => 0, AutoCommit => 0 }); if (!$dbh) { .... } Где тут требуется какое либо подавление варнингов? > AS> - выключить варнинги для данного кусочка кода (см. perldoc perlvar > AS> на предмет переменной $^W и perldoc warnings). Если этот варнинг не > AS> выключается - обернуть кусок кода в eval. Если не помогло и это > > Именно в eval и происходит вывод. DBI это делает. Варнинги и ошибки из eval не всплывают на поверхность. Ошибки попадают в $@, а варнинги "в никуда" если самому не перехватить $SIG{__WARN__} и не накапливать их. Если нечто пробивается на поверхность, это просто вывод на STDERR. Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/528438c67498.html, оценка из 5, голосов 10
|