Как называется такой паттерн обработки исключений?



@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 в правильном порядке.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *