За последние 24 часа нас посетили 31053 программиста и 1450 роботов. Сейчас ищут 911 программистов ...

Обработка ошибок

Тема в разделе "PHP для новичков", создана пользователем eldor, 13 янв 2014.

  1. eldor

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

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    Поискал на форуме, погуглил и все равно не до конца понимаю как работает try catch...

    Код (Text):
    1.  
    2. function inverse($x)
    3.         {
    4.             if(!$x)
    5.             {
    6.                 throw new Exception('Ошибка, которую мы получили');
    7.             }
    8.         }
    9.         try
    10.         {
    11.             $db = mysqli_connect('localhost','root','123456','xxxxx');
    12.         }
    13.         catch(Exception $e)
    14.         {
    15.             echo 'Выброшено исключение', $e->getMessage();
    16.         }
    При таком виде все равно выводит ошибку в браузере.
    Что я делаю не так?
    И подскажите, пожалуйста, как вообще правильно обрабатывать все ошибки в php?
     
  2. semnt

    semnt Новичок

    С нами с:
    25 дек 2013
    Сообщения:
    93
    Симпатии:
    0
    try catch - это не обработка ошибок, а перехват исключений.
    Функция mysqli_connect не генерирует никаких исключений, поэтому поймать их не получится.
     
  3. eldor

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

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
    А что тогда считается исключениями и как правильно обрабатывать ошибки?
     
  4. semnt

    semnt Новичок

    С нами с:
    25 дек 2013
    Сообщения:
    93
    Симпатии:
    0
    Исключения:
    http://php.ru/manual/language.exceptions.html

    Ошибки обрабатываются примерно так:
    Код (Text):
    1. $с = @mysqli_connect('localhost','root','123456','xxxxx');
    2. if( !$с ) {
    3.     echo "Error!";
    4.     exit;
    5. }
     
  5. eldor

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

    С нами с:
    3 май 2013
    Сообщения:
    202
    Симпатии:
    20
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Mysqli может кидать эксепшены на коннект, только надо ему это велеть делать. Доку гляньте, я с телефона.