Как правильно использовать исключения с PHP? - PullRequest
4 голосов
/ 18 июня 2011

У меня всегда есть метод «кода возврата» для управления ошибками.Кажется, что исключения в настоящее время являются лучшим способом управления ошибками.
Но действительно ли они являются лучшим способом?Я читал такие вещи, как исключения являются худшими, чем GoTo

Знаете ли вы несколько хороших статей / сообщений / книг об исключениях и управлении ошибками?

Ответы [ 2 ]

3 голосов
/ 18 июня 2011

Если вы программируете объектную ориентацию, возможно, исключения лучше для вас.Если вы пишете процедурные, возвращаемые значения являются лучшим способом.Это зависит от вашего стиля кодирования и т. Д.

2 голосов
/ 18 июня 2011

Исключения примерно в 10000 раз медленнее, чем возвращение кода состояния / ошибки в зависимости от языка программирования. Это происходит из-за отслеживания всей информации стека. Это плохо.

Как правило, вам никогда не нужно использовать исключения. Фактически, в один момент, единственное, что существовало, это коды возврата.

Приятная особенность исключений состоит в том, что они не позволяют программе продолжаться, если с ними не будут обращаться правильно. Вместо этого программа вылетает.

Так что, в основном, если вы забываете об обработке сообщений о состоянии или беспокоитесь о том, что другие могут не проверять коды возврата из ваших функций, исключения останавливают программу и заставляют вас ее исправить. Хотя я видел, как многие неопытные программисты ловили исключение, ничего не делали с этим и затем продолжали. По сути, это то же самое, что игнорирование кода возврата из функции.

Еще одна приятная особенность исключений состоит в том, что они «всплывают» автоматически. Вместо того, чтобы передавать коды ошибок через длинную цепочку функций, вы можете установить свой метод try на самом верхнем уровне и соответствующим образом обработать любую ошибку (при условии, что вы не хотите, чтобы что-то еще происходило между ними). Например, если что-то пойдет не так, отобразите страницу с ошибкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...