@romaro
Паттерн, при котором исполняемый код оборачивается в try…catch на самом верхнем уровне и определяется несколько наследников от базового класса ошибки, логика обработки которых прописывается один раз в корневом catch:
class FormError extends Error {};
class AuthError extends Error {};
function auth() {
// do something
throw AuthError;
}
function validator() {
// do something
throw FormError;
}
try {
auth();
validator();
} catch(err) {
if (err instanceof FormError) {}
if (err instanceof AuthError) {}
// unhandle err
}
Решения вопроса 0
Ответы на вопрос 3
@vabka
Никакого названия у такого паттерна нет.
В целом это то, как обычно идёт обработка исключений в C# и Java.
@includedlibrary
Возможно так — pokemon exception handling
@maaGames
Когда виртуальное поведение скрывается в невиртуальной функции, то это шаблон «шаблонная фукнция» (без полиморфизма тоже применимо). В данном случае «шаблонная фукнция» не только обработку исключений делает, но и обеспечивает вызов виртуальных функций auth и valid в правильном порядке.
