Согласен - проверка length. На счет эксепшена -
можно, но как-то коряво (много дополнительного кода на обработку, не самого внятного притом). Тут ведь просто условие продолжения выполнения логики.
Если нужно действительно убедиться, что присутствуют обязательные все элелемнты просто (хотя бы по разу), я бы написал так примерно:
...
var selectors = [ '.header__layer1', '.figures', '.top-menu', '.switcher'];
var allElementsExist = $.grep(selectors, function ( selector ) {
return $( selector ).length > 0;
}).length === selectors.length;
if (allElementsExist) {
// логика
} else {
return; // можно else просто опустить если дальше ничего не должно быть, разумеется
}
...
Можно конечно и хелпер сделать, но я лично не большой фанат таких подходов
jQuery.fn.exists = function() { return this.length>0; }
// использовать потом так:
if ( $( selector ).exists() ) {
// ... что-то
}