Articles of Исключение

Правильный способ обработки исключений

Теперь, что я обычно делаю при написании кода, это что-то вроде этого function changeBookAuthor(int $id, string $newName){ if(!$newName){ throw new MyAppException('No author name was provided'); } $book = Books::find($id); if(!$book){ throw new MyAppException('The provided book id could not be found'); } } в документе laravel мы видим: https://laravel.com/docs/5.4/errors public function report(Exception $exception) { if ($exception […]

Как вставить строку и игнорировать только UNIQUE ошибки, не используя SELECT

У меня есть таблица с столбцом, который должен иметь UNIQUE значения (но это может быть также индекс UNIQUE с несколькими столбцами, проблема такая же). В моем PHP-скрипте мне нужно вставить строку в эту таблицу. Я ищу способ, а не специфичный для MySQL, выйти из PHP-скрипта, если есть проблема, и проблема не является нарушением ограничения UNIQUE. […]

PHP: можно ли возобновить блок try после исключения?

Предположим, у меня есть такие коды: try{ doTaskA(); doTaskB(); doTaskC(); } catch(MyException $e){ fixMyException(); } Когда doTaskA () выбрасывает MyException, я хочу, чтобы программа проходила через fixMyException (), затем она возвращается и продолжает выполнение doTaskB () и doTaskC (). Является ли это возможным? То же самое должно применяться к другим задачам, то есть все doTaskA […]

будет ли ложный возвращенный PDO execute () таким же, как исключение, которое оно выбрало?

В соответствии с просьбой я переформатирую вопрос: Для следующего кода: $newPDO=new PDO($DSN,$USER,$PASS); $newPDO->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); $SQL='SOME SQL STATEMENT MAYBE FAULTY'; try{ $Query=$newPDO->Prepare($SQL) $Success=$Query->execute(); if(!$Success) echo('A'); } catch(PDOException $e) { echo('B'); } Вопрос в том, можно ли напечатать «А»? Будет ли ответ отличаться для разных типов $SQL например select или insert? Оригинальный вопрос: Сначала я устанавливаю атрибут PDO […]

Ошибка $ .ajax не может поймать заброшенное исключение из php

$.ajax({ type: "POST", url: "functions/add_vendor.php", data: { vendor_info_json : vendor_info_json }, success:function(result) { alert('Successfully Done.') location.reload(); }, error: function(jqXHR, textStatus, errorThrown){ alert('Error Message: '+ textStatus); alert('HTTP Error: '+ errorThrown); } }) Это код jquery, над которым я работаю. Далее вызывается файл add_vendor.php. <?php include_once('../models/VENDOR_DB_MANAGER.php'); $vendor_info_json = $_REQUEST["vendor_info_json"]; $DB = new VENDOR_DB_MANAGER(); $DB->connectTo('BBY'); try { //This […]

Как использовать исключения PHP для определения перенаправления?

Меня всегда учили, что использование исключений в программировании допускает абстрагирование ошибок от объектов, которые вызывают ошибки. Глядя на руководство PHP , кажется, что PHP имеет класс Exception и класс ErrorException, указывая, что не все исключения должны быть ошибками. Поэтому я хотел бы использовать их, чтобы помочь с переадресацией страниц. Я хочу иметь жесткую переадресацию, которая […]

окончательное исключение дает ошибку php

Я пытаюсь изучить PHP, и я просто перешел в Exceptions, и когда я попробую пример из http://php.net/manual/en/language.exceptions.php Example #2 Exception handling with a finally block И я получаю сообщение об ошибке Parse error: syntax error, unexpected '{' in C:\xampp\htdocs\test\filename.php on line 13 <?php function inverse($x) { if (!$x) { throw new Exception('Division by zero.'); } […]

Обновление Laravel 5.2 – класс AuthServiceProvider не найден

В настоящее время я провожу время, чтобы обновить свой проект от Laravel 4.2 до Laravel 5.2. После многих неприятностей мне удалось получить версию 5.1 правильно, поэтому я начал процедуру 5.1 до 5.2, как описано в официальных документах: https://laravel.com/docs/5.2/upgrade#upgrade-5.2.0 После первого шага мой composer.json выглядит так: "require": { "laravel/framework": "5.2.*", "illuminate/html": "5.*", "andywer/js-localization": "dev-laravel-5", "laracasts/flash" : […]

объекты, бросающие исключения внутри объектов

Я работаю над объектом, который в какой-то момент создает экземпляр другого объекта. Этот внутренний объект может вызвать исключение. Я мог бы просто позволить этому пузырьку исключений, чтобы какой-либо код обрабатывал родительский объект, что я и хочу делать, следуя философии KISS. Или я мог бы выполнять некоторую обработку исключений в родительском объекте и, возможно, дать более […]

Как Postgres «RAISE EXCEPTION» преобразуется в исключение PDOException?

Я пытаюсь выяснить, какие «части» оператора «RAISE EXCEPTION» отображаются в «части» PDOException. Может ли кто-нибудь объяснить «кто» и «как» выполнить это преобразование (или, еще лучше, указать на документ, который описывает этот или исходный код, который выполняет это)? В частности, я хотел бы знать, есть ли способ повлиять на значение SQLSTATUS (в моих тестах всегда есть […]