Не goto, а return, т.к. функция сломалась, дальше выполняться не может. Но сам скрипт еще может принять решение о дальнейшем продолжении своей работы. Причем это решение принимает не "проштрафившаяся" функция (как Вы предлагаете), а вызвавший ее код.этакий оператор goto
затем, что проверку ты можешь и заб[ыи]ть сделать, а с кидаемым эксепшеном - нет. Если ты приверженец того, что в программе вообще не должно генериться никаких, даже внутренних ошибок, могу только посочувствовать.зачем оборачивать её вызов в try-catch, если достаточно простой проверки возвращаемого ею значения?
А что, бывают такие программы, которые продолжают свою работу, как ни в чем не бывало, даже если объект не создался?в некоторых случаях ты просто не сможешь нормально сделать без эксепшенов. Например, при вызове $a = new ActiveRecord($id), в случае, когда $id окажется невалидным и объект вообще не должен быть создан.
Естественно!А что, бывают такие программы, которые продолжают свою работу, как ни в чем не бывало, даже если объект не создался?
почему? вполне можно создать объект, который не будет содержать данных, но свойство "error" будет содержать сообщение об ошибке. ещё можно вспомнить, что php - мягко типизированный язык, поэтому вместо объекта можно вернуть строку с ошибкой.Например, при вызове $a = new ActiveRecord($id), в случае, когда $id окажется невалидным и объект вообще не должен быть создан.
ну как же trigger_error ещё никто не отменял.Если ты приверженец того, что в программе вообще не должно генериться никаких, даже внутренних ошибок, могу только посочувствовать.
о да это то, о чем мечтает каждый программист.который не будет содержать данных, но свойство "error" будет содержать сообщение об ошибке
В том то и дело, что нельзя.поэтому вместо объекта можно вернуть строку с ошибкой.
Еще можно гвоздь логарифмической линейкой забивать. Твоя линейка, твой гвозь, твоя селедка на гвозде - кто ж против?Автор оригинала: dark-demon
почему? вполне можно создать объект, который не будет содержать данных, но свойство "error" будет содержать сообщение об ошибке.
В огороде бузина, а в городе - дядька. Мы говорим об обработке ошибок через бросание/отлов исключений, в частности при создании объектов. При чем тут типы, при чем тут строка? О 4ке речь не идет впринципе.ещё можно вспомнить, что php - мягко типизированный язык, поэтому вместо объекта можно вернуть строку с ошибкой.
А никто и не говорит, что надо о нем забыть. Наличие выбора мне нравится больше, чем отказ от него.trigger_error ещё никто не отменял.
Мы еще в рамках веб-приложений разговариваем? Я ничего не пропустил? То что "попробовать еще раз" будет происходить в совершенной другой инкарнации скрипта вас не смущает?...возможно, вывести уведомление пользователю, или, возможно, попробовать еще раз.
А еще можно экскаватором клумбы вскапывать. Твоя клумба, твой экскаватор, он же ЛШ-5МУ (лопата штыковая модель 5 моторизированная укрупненная) - кто ж против?Еще можно гвоздь логарифмической линейкой забивать. Твоя линейка, твой гвозь, твоя селедка на гвозде - кто ж против?
это так называемый null-object patternо да это то, о чем мечтает каждый программист.
кто-то мешает?В том то и дело, что нельзя.
какие вызовешь - такие и будут.trigger_error - это не-recoverable ошибки.
чьорт, меня раскусили \(^_^)/Прочитал еще раз твой последний пост, и понял, что пытаюсь вправить моск профессиональному спорщику.
смущает отношение к веб-приложению как к "скрипту"То что "попробовать еще раз" будет происходить в совершенной другой инкарнации скрипта вас не смущает?
меня страшными словами не запугаешьэто так называемый null-object pattern
совсем неуже не совсем правильно
с чего это вдруг?StUV, на цпп альтернатив особо и нет