@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
}
  • Вопрос задан
  • 327 просмотров
Пригласить эксперта
Ответы на вопрос 3
vabka
@vabka
Токсичный шарпист
Никакого названия у такого паттерна нет.

В целом это то, как обычно идёт обработка исключений в C# и Java.
Ответ написан
includedlibrary
@includedlibrary
Возможно так - pokemon exception handling
Ответ написан
Комментировать
maaGames
@maaGames
Погроммирую программы
Когда виртуальное поведение скрывается в невиртуальной функции, то это шаблон "шаблонная фукнция" (без полиморфизма тоже применимо). В данном случае "шаблонная фукнция" не только обработку исключений делает, но и обеспечивает вызов виртуальных функций auth и valid в правильном порядке.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы