За последние 24 часа нас посетили 18968 программистов и 1888 роботов. Сейчас ищут 1197 программистов ...

проба пера в исключении

Тема в разделе "PHP для новичков", создана пользователем nimistar, 17 янв 2009.

  1. nimistar

    nimistar Активный пользователь

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    На пхп пишу начиная с 3-ий версии и соотвествено процедурный подход уже просто в спинном мозге, но начиная с пятой решил попробовать поменять свое сознание и начал с исключений.
    На форуме читал, и книжки смотрел - но решил попробовать свое ...

    так вот вопрос:
    при задаче -
    не накапливать ошибки, а сразу отбивать их с остановкой скрипта,
    результат подготовить для передачи во флеш.
    коментарий: на выходе некодирую в урл пока отлаживаю через браузер
    PHP:
    1. <?php
    2. function EH($errno, $errstr, $errfile, $errline ) {
    3. throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
    4. }
    5. try{
    6.     $Mysql=mysql_connect('localhost','root') or EH(mysql_errno(),"Ошибка подключения к серверу данных",__FILE__,__LINE__);
    7.     mysql_select_db('vancliff',$Mysql) or EH(mysql_errno(),"Неверная база данных");
    8.     mysql_query('SET NAMES "utf8"', $Mysql) or EH(mysql_errno(),"Ошибка установления локали");
    9.  
    10.  
    11.  
    12.     $MSG='Неопределенно сабытие';
    13.     switch(htmlspecialchars(@$_POST['action'])){
    14.         case 'registration':
    15.        
    16.             preg_match("/^[0-9a-z_-]+$/iu", @$_POST['login']) or EH(0,"Неверные символы в поле логина",__FILE__,__LINE__);
    17.             preg_match("/^[0-9a-z_-]+@[0-9a-z_-]+\.[0-9a-z_-]{2,6}$/iu", @$_POST['email']) or EH(0,"Неверный email",__FILE__,__LINE__);
    18.        
    19.         break;
    20.     }
    21.     echo '&status=1&msg=Регистрация успешна';
    22. }catch (Exception $e) {
    23.     echo '&status=0&msg='.($e->getMessage())."";
    24. }
    25. ?>
    насколько ошибочная реализация ?
     
  2. AlexGousev

    AlexGousev Активный пользователь

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва
    catch применяется для отлова исключения, когда программа должна продолжить выполняться. А вывод информации об ошибке через set_exception_handler стоить сделать
     
  3. md5

    md5 Активный пользователь

    С нами с:
    29 янв 2007
    Сообщения:
    250
    Симпатии:
    0