Я разрабатываю какой-то проект. И я хочу контролировать разные ошибки. Я знаю, что во всех популярных фреймворках и проектах php существуют разные Исключения. Но я думаю, что это не обязательная работа. Если ошибка произошла, мы можем сделать die () с нашим сообщением. 1. В чем основные плюсы исключений? 2. Могу ли я контролировать свои ошибки с помощью die ()?
Спасибо.
Ну, вы можете использовать die()
. Но это делает все ошибки фатальными. Это означает, что вы не можете вообще попытаться исправить ошибку. В некоторых случаях это нормально.
Но в большинстве случаев вам может понадобиться «очистить» после ошибки или попробовать другой метод. Вот где могут быть исключения … Они позволяют вам выбирать, где и если вы хотите обработать ошибку. Они позволяют вам изящно оправиться от ошибок.
Например, предположим, что у вас есть метод, который загружает файл с удаленного сервера: downloadFromRemoteServer($address);
Если вы используете die()
, если загрузка не удалась, скрипт завершается. Конец истории.
Но если вы используете исключения, вы можете попробовать другой сервер или попробовать другой метод (HTTP vs FTP и т. Д.):
try { $file = downloadFromRemoteServer('http://example.com/foo'); } catch (DownloadFailedException $e) { try { $file = downloadFromRemoteServer('http://secondtry.example.com/foo'); } catch (DownloadFailedException $e2) { die('Could not download file'); } } return $file;
Но помните, что Исключения полезны только для исключительных обстоятельств. Они не предназначены для любой возможной ошибки. Например, если пользователь не проверяет свой адрес электронной почты правильно, это не является исключительным. Но если вы не можете подключиться к серверу базы данных или иметь конфликт в БД, это будет исключение …
Александр,
die () и Исключения выполняют разные вещи.
конструктор языка «die» просто останавливает выполнение сценария и, возможно, выводит параметры, если он был вызван как функция.
С другой стороны, исключения – это более сложные структуры, которые используются в контекстах ООП, чтобы дать разработчику большую гибкость в отношении того, нужно ли останавливать сценарий, и если да, каким образом, какой вывод должен показывать пользователю и т. Д.
Исключения немного сложнее, чем это, поэтому вам, возможно, нужно сначала документировать себя с помощью ООП или, если на то пошло, читать о zend framework, и вы поймете, что такое Исключения.
Однако для простых вещей вы всегда можете использовать exit (или die, что то же самое).
Надеюсь, это поможет, славянские
1 Каковы основные плюсы исключений?
Основные преимущества:
2 Могу ли я контролировать свои ошибки с помощью die ()?
Я бы не назвал это контролем, я бы назвал это отказом от фактической обработки ошибки. Ни в коем случае в моих проектах нет die()
фактически удобных для пользователя, и все они die('...some error condition...');
примеры кода PHP – это ИМХО, которые подходят только для проектов в разработке. В процессе производства вы хотите, чтобы ваши пользователи могли выполнять свои задачи / программы самым простым способом, поэтому «попробуйте еще раз» (если условие ошибки не будет выполнено снова), «извините, что не работает '/ другие виды сообщений, формы / страницы более желательны, а затем die()
.