Я больше этого не одобряю, поскольку это было действительно в 2011 году, но, возможно, не в 2018 году и далее.
Разделение проблем. Ваши HTML и CSS не привязаны к вашему JS-коду. Ваш JS-код не является встроенным в какой-либо элемент HTML. У вашего кода нет одной большой функции (или не-функции) для всего. У вас короткие, сжатые функции.
Модульная. Это происходит, когда вы правильно разделяете проблемы. Например, ваша потрясающая анимация холста не должна знать, как работают векторы, чтобы нарисовать прямоугольник.
Не убивайте людей, если у них нет установленного JavaScript, или они не работают больше всего последние браузеры - делайте все возможное, чтобы изящно разлагать опыт.
Не строите горы мусора, когда вам нужно всего лишь сделать что-то маленькое. Люди бесконечно усложняют свой код, повторно выбирая элементы DOM, разбираются в семантическом HTML и бросают нумерованные идентификаторы там и другие странные вещи, которые происходят из-за того, что они не понимают модель документа или какой-либо другой бит технологии, поэтому они полагаются на «магические» уровни абстракции, которые замедляют все до скорости мусора и приносят в себя горы над головой.
Да, не пойманные исключения приводят к фатальным ошибкам, которые останавливают выполнение скрипта. Поэтому функция do_some_database_stuff
не будет вызвана, если будет брошено исключение. Подробнее об исключениях вы можете прочитать в этой статье.
Исключение, если его не поймать, завершит выполнение сценария.
См. главу руководства PHP об исключениях
Просмотрите руководство PHP по исключениям.
Когда возникает исключение, код следующий за утверждением не будет не будет выполнен, и PHP попытается найти первый подходящий блок catch. Если исключение не будет поймано, будет выдана фатальная ошибка PHP будет выдана ошибка с сообщением "Uncaught Exception ...", если только не будет определен обработчик не был определен с помощью set_exception_handler().
Так что да, остальная часть функции не выполняется, вместо нее возникает фатальная ошибка.
Если вы поймали исключение, выполнение скрипта продолжается в соответствующем блоке catch, все "между" функцией, которая выбросила исключение, и блоком catch не выполняется.