Как я могу справиться с такого рода исключениями (в Доктрине) - PullRequest
1 голос
/ 16 января 2011

Можете ли вы сказать мне, как я могу обрабатывать такого рода исключения:

Неустранимая ошибка: необработанное исключение Doctrine_Connection_Exception с сообщение «Ошибка подключения PDO: SQLSTATE [HY000] [2013] Потерянное соединение на сервер MySQL при чтении начального пакет связи ', системная ошибка: 110' in ...

Это происходит, когда соединение с MySQL теряется во время запроса. Мне нужно обработать это исключение, чтобы я мог показать страницу с ошибкой 500, чтобы сканеры не кэшировали страницу, и перенаправить пользователя на соответствующую страницу «Повторить попытку».

P.S. У меня много кода, поэтому я не могу пройти весь код, чтобы поставить блок try / catch. Мне нужно что-то простое и все же эффективное.

Ответы [ 2 ]

1 голос
/ 26 января 2011

Мне нужно что-то простое и в то же время эффективное

try / catch будет вашим единственным выбором IMO.Если у вас есть много мест, где вам нужно добавить предложение try / catch, вы можете переместить этот конкретный фрагмент кода в отдельную функцию.

Если, скажем, эта строка выдает исключение

$ con> query ($ your_DQL_query) // что-то здесь происходит с результатами

переместить его во что-то вроде

function goodQuery($sql) {
  try {
    $con->query($sql);
  } catch (Doctrine_Connection_Exception $dce) {
    //do something
  }
}

Вам все еще нужно заменить все ваши "броски"методы с вызовом функции goodQuery(...), но это облегчит дальнейшую разработку, поскольку исключение обрабатывается в одном месте.

0 голосов
/ 17 января 2011

Вы не справляетесь с Doctrine ... Вы справляетесь с вашим языком кодирования.Если вы используете PHP:

try {
  SomeClass::do_something(parameter);
} catch(DoctrineException $e) {
  show_error($e->getMessage());
}

Это явно sudo-код, но он дает вам представление ... Вы можете показать общую ошибку или быть конкретным и отобразить сообщение доктрины ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...