Теперь, что я обычно делаю при написании кода, это что-то вроде этого 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 […]
Я пытаюсь добавить настраиваемый элемент управления исключениями в FOSRestBundle, но он, кажется, игнорирует мои пользовательские сообщения (код состояния ответа в порядке). У меня есть: throw new HttpException(404, "User {$id} not found"); Но получите ответ json: { "error": { "code": 404, "message": "Not Found" } } Поэтому я не нашел способ показать свое сообщение
catch не работает, потому что установлен обработчик исключений с помощью set_exception_handler () Мне нужно «поймать», чтобы работать, поэтому я думаю, мне нужно как-то отключить обработчик исключений. Такие вещи, как set_exception_handler (NULL) , не работают. Любые идеи о том, как удалить обработчик исключений? function my_exception_handler($exception) { error_log("caught exception: " . $exception->getMessage() ); } set_exception_handler("my_exception_handler"); // QUESTION: […]
Я пытаюсь проверить свой класс на InvalidArgumentException, но я получаю Тесты \ BarTest :: should_receive_parameter Отсутствует аргумент 1 для Itdc \ Foo \ Bar :: __ construct (), вызывается в /mypath/foo/tests/BarTest.php в строке 10 и определяется Это файл теста (BarTest.php), который я использую: <?php namespace Tests; use Itdc\Foo\Bar; class BarTest extends \PHPUnit_Framework_TestCase { /** @test […]
Я озадачен. Что может заставить «улов» не работать и как его исправить? <?php try { throw new Exception('BOOM'); error_log("should not happen"); } catch(Exception $e) { error_log("should happen: " . $e->getMessage()); } ?> Фактический выход [27-Apr-2010 09:43:24] PHP Fatal error: Uncaught exception 'Exception' with message 'BOOM' in /mycode/exception_problem/index.php:4 Stack trace: #0 {main} thrown in /mycode/exception_problem/index.php on […]
Есть ли «статический» способ выброса исключения в php? Мне нужно создать исключение, когда запрос mysql завершится с ошибкой. Я попробовал это: $re=@mysql_query( $query ) or throw new Exception(' Query Failed '); но он не работает. И я использую функцию, основанную на функции throwException() из этого комментария в руководстве PHP: Исключения , но я хотел бы […]
Почему PHPUnit не делает последнее утверждение исключения в этом коде? public function testConfigOverriding() { $this->dependencyContainer = new DependencyContainer(__DIR__ . "/../../Resources/valid_json.json"); $this->assertEquals('overriden', $this->dependencyContainer->getConfig('shell_commander')['pygmentize_command']); $unexisting = "unexisting_file"; $this->setExpectedException('Exception', "Configuration file at path \"$unexisting\" doesn't exist."); $this->dependencyContainer = new DependencyContainer($unexisting); $invalid = __DIR . "/../../Resources/invalid_json.json"; $this->setExpectedException('Exception', "Configuration JSON file provided is not valid."); $this->dependencyContainer = new DependencyContainer($invalid); } […]
Я использую структуру laravel, и я хочу проверить, было ли соединение с Soap-сервером успешным или нет, без приложения, которое умирает с фатальной ошибкой. И это: $this->client = @new SoapClient("http://some.url/test.wsdl"); $this->session = $this->client->login("username", "password"); if (is_soap_fault($this->session)) { return "Error"; } И это: try { $this->client = @new SoapClient("http://some.url/test.wsdl"); $this->session = $this->client->login("username", "password"); } catch (SoapFault $e) […]
Это написано на PHP, но на самом деле это язык агностик. try { try { $issue = new DM_Issue($core->db->escape_string($_GET['issue'])); } catch(DM_Exception $e) { throw new Error_Page($tpl, ERR_NOT_FOUND, $e->getMessage()); } } catch(Error_Page $e) { die($e); } Является ли вложенный try, catch блоки хорошей практикой следовать? Это кажется немного громоздким только для страницы с ошибкой – однако […]
Я разрабатываю какой-то проект. И я хочу контролировать разные ошибки. Я знаю, что во всех популярных фреймворках и проектах php существуют разные Исключения. Но я думаю, что это не обязательная работа. Если ошибка произошла, мы можем сделать die () с нашим сообщением. 1. В чем основные плюсы исключений? 2. Могу ли я контролировать свои ошибки […]