Как прервать скрипт, если нет одного из указанных элементов?
Согласен - проверка 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() ) {
    // ... что-то
}
Может, можно как-то сделать типа 
var header__layer1 = $('.header__layer1') or die
Нельзя.
Но и с undefined сравнивать нельзя, $() всегда возвращает jquery-объект. Нужно смотреть свойство length у него:if (!header__layer1.length || !figures.length)
Единственное, что можно сделать - создать функцию-хелпер, которая будет бросать ошибку, если элемент не найден.