У меня есть PHP-скрипт, который запускает запросы к базе данных. Теперь, если запрос терпит неудачу, я должен вызвать ошибку или выбросить исключение? Я заметил, что если я сделаю последнее, выполнение скрипта остановится после обращения к исключению. Мой код выглядит следующим образом: if (!$this->connection[0]->query($this->query)) throw new Exception($this->connection[0]->error); Каковы плюсы и минусы использования исключений для подобных случаев […]
У меня есть определенный класс с некоторыми методами в нем, один из которых генерирует исключение в соответствии с следующим, когда выполняются определенные ошибочные критерии: PHP if ($this->mode !== null) { throw new LogicException('Nem kezdhető új "insert" utasítás.'); } Если я не обработаю эту ошибку, PHP покажет сообщение «Fatal Error», как ожидалось, но не пользовательское сообщение, […]
Метод выполняет рекурсивное сканирование файлов yaml и анализирует их, извлекает часть информации. Я использую sfYamlParser для анализа yaml. Я включил вызов parse () в блоке try и поймал «Exception $ e», но я все равно получаю «Неустранимая ошибка: непоставленное исключение». try{ $definition = $parser->parse(file_get_contents($filePath));//line 20 } catch(Exception $e) { throw new Exception("Parsing model definiion '$filePath' […]
Я работаю с php-приложением, и есть строка, которая перемещает файл. Я включил метод в блок try … catch, поэтому, если возникла ошибка, можно управлять системой отката. Но исключение никогда не вылавливается, поэтому переименовывает ли какие-либо исключения? Нужно ли мне попробовать другой метод? благодаря Код выше: try{ if(rename($archivo_salida, $ruta_archivos)){ //anything; } }catch (Exception $e) //do something […]
Я пытаюсь выяснить, как создать настраиваемое поведение исключения. Когда я бросаю исключение, используя throw new \Exception('Error occurred with your request please try again'); Я автоматически получаю статус 500, а сообщение – как внутренняя ошибка сервера Однако вместо этого я бы хотел, чтобы мой ответ включал мое сообщение об исключении, а не только внутреннюю ошибку сервера, […]
Я хочу сам обрабатывать исключения в моем приложении php. Когда я бросаю исключение, я хочу передать название, которое будет использоваться на странице с ошибкой. Может ли кто-нибудь связать меня с хорошим учебным пособием или написать четкое объяснение того, как работает обработка исключений (например, как узнать, какое исключение вы занимаетесь с помощью ect.
Я очень новичок в php, и пока я искал примеры использования сокетов, я заметил, что ни один из них не включал код обработки исключений. Сначала я подумал, что, возможно, php не имеет исключений … но google сказал мне иначе. Есть тонны статей, восхваляющих использование исключений в php (я прихожу из Java & C #, я […]
Итак, у меня есть простой код: try{ $mysqli = new mysqli($sql_login['host'], $sql_login['user'], $sql_login['password'] , $sql_login['database'], $sql_login['port'] ); if($mysqli->connect_errno){ throw new Exception("Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error); } } catch (Exception $e) { echo 'Exception: ', $e->getMessage(), "\n"; } проблема в том, что php возвращает ошибку, а также исключение. […]
У меня есть репозиторий class TurnoRepository extends EntityRepository { public function findTurnoActivo() { $q = $this ->createQueryBuilder('t') ->where('t.activo = :activo') ->setParameter('activo', true) ->getQuery(); return $q->getSingleResult(); } } этот метод выдает NoResultException, но если я пытаюсь поймать в своем контроллере private function obtenerTurno() { $em = $this->getDoctrine()->getEntityManager(); $turno = null; try { $turnoActivo = $em->getRepository('MyBundle:Turno')->findTurnoActivo(); } […]
Я пытаюсь создать слушателя для прослушивания 403, 404 и 500 исключений. Это отлично работает для 403 и 404 исключений, но не для 500 исключений. За 500 исключений (или исключений, которые будут возвращены как 500 ошибок для клиента) метод onKernelException никогда не вызывается. В моем текущем проекте Symfony это похоже, и когда код добавлен в чистую […]