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

Преобразование ошибок в исключения: ошибка дизайна?

Недавно я натолкнулся на какой-то код, который использовал собственный обработчик ошибок, чтобы превратить любые ошибки PHP в исключение обобщенного приложения. Также был определен специальный обработчик исключений, который будет регистрировать исключение, если он находится в определенном диапазоне кода ошибки. Пример: class AppException extends Exception { } function error_handler($errno, $errstr, $errfile, $errline) { throw new AppException($errstr, $errno); […]

Исключение исключения в обработчике исключений

У меня есть скрипт с обработчиком исключений. Этот обработчик исключений очищает пару подключений, прежде чем скрипт выйдет после исключения. Я хотел бы перебросить исключение из этого обработчика исключений, чтобы он обрабатывался собственным обработчиком исключительных событий PHP, где ошибка записывается в журнал ошибок PHP или по умолчанию, как это указано в PHP.ini. К сожалению, это не […]

PHP – преобразование всех ошибок в исключения – хорошее или плохое?

Мне было интересно, не считается ли это плохой практикой глобально преобразовывать все ошибки PHP в исключения. Будет использовано следующее: function exception_error_handler($errno, $errstr, $errfile, $errline ) { throw new ErrorException($errstr, 0, $errno, $errfile, $errline); return false; } Предполагаю, что вы можете просто начать использовать «try / catch» вокруг определенных фрагментов кода, которые обычно генерируют ошибки. Если […]

Как лучше обрабатывать исключения в конструкторе?

Как лучше всего обрабатывать исключение в конструкции? option1 – исключение catch, где созданный объект: class Account { function __construct($id){ if(empty($id)){ throw new My_Exception('id can\'t be empty'); } // … } } class a1 { function just($id){ try { $account = new Account($id); } catch(Exception $e){ $e->getMessage(); } } class a2{ function just($id){ try { $account […]

Как отключить PHP, отсекая части длинных аргументов в трассе стека исключений?

Иногда такие вещи случаются: #0 /some/path(1): Class_Name->exception_trigger() #1 /some/other/path(5): get_to('/some/long/path/tha…') Как мне получить полный аргумент за все?

trigger_error против исключения броска

Здесь был задан аналогичный вопрос, но поскольку ответы не отвечали на мой вопрос, я спрашиваю: Я почти никогда не использовал trigger_error , но всегда выбрасывал исключения, поскольку в моем сознании ошибки являются устаревшими. Но я передумал, думаю, они могут сосуществовать. Бывают случаи, когда ошибки при запуске имеют больше смысла. Я обновляю эту библиотеку , этот […]

Baffled: PHP Неустранимая ошибка: Исключение брошено без рамки стека в Unknown в строке 0?

Я обнаружил, что одной общей причиной ошибки является исключение, вызванное из обработчика исключений . Я уверен, что этого не происходит в приложении, которое я пытаюсь отлаживать … Но я поставил все строки обработки инициализации вверху index.php в try / catch. * Возможно, это также происходит, потому что некоторые вещи не могут быть сериализованы для хранения […]

Ошибка PDOException?

Я получаю следующую ошибку в PHP : Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2003] Can't connect to MySQL server on 'localhost' (10061)' in C:\xampp\htdocs\project\Service\Database.class.php:26 Stack trace: #0 C:\xampp\htdocs\project\Service\Database.class.php(26): PDO->__construct('mysql:host=loca…', 'root', '', Array) #1 C:\xampp\htdocs\project\Service\Database.class.php(54): Service\Database::initialize() #2 C:\xampp\htdocs\project\index.php(15): Service\Database::getHandler() #3 {main} thrown in C:\xampp\htdocs\project\Service\Database.class.php on line 26 Сама ошибка не является проблемой , я […]

PHP: исключения против ошибок?

Может быть, я пропускаю его где-то в руководстве по PHP, но в чем разница между ошибкой и исключением? Единственное отличие, которое я вижу, это то, что ошибки и исключения обрабатываются по-разному. Но что вызывает исключение и что вызывает ошибку?

Как обрабатывать исключения PDO

Я пытаюсь работать с PDO классом на php, но у меня есть некоторые проблемы, чтобы найти правильный способ обработки ошибок, я написал этот код: <?php // $connection alreay created on a class which works with similar UPDATE statements // I've simply added here trim() and PDO::PARAM… data type $id = 33; $name = "Mario Bros."; […]