Executando verificação de segurança...
11

Acho que entendi, você parece estar usando um padrão chamado "action"
https://dev.to/urielsouza29/padrao-por-acao-action-pattern-limpo-obvio-e-testavel-3j7d

Esse padrão do texto é parecido com o seu, mas melhor organizado.
Se você gosta do seu modo complementar com o action vai te ajuda muito mais!

const validateOptions = (options) => {
  try {
    if (!options) throw new Error('options object is required.');
    if (!options.someOption) throw new Error('options.someOption is required.');
  } catch (exception) {
    throw new Error(`[validateOptions] ${exception.message}`);
  }
}; 

Eu sugeriria mais uma complementação ao action.
usar

Usar o error cause

https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Error/cause

const validateOptions = (options) => {
  try {
    if (!options) throw new Error('options object is required.');
    if (!options.someOption) throw new Error('options.someOption is required.');
  } catch (exception) {
  
    throw new Error('[validateOptions]', { cause: { code: COD002 , message:exception.message }, });
  }
}; 

Você não precisa sempre de try catch
para mandar um erro. Pode ser só if mesmo!

Você também pode centralizar os erros num lugar só!

https://www.toptal.com/nodejs/node-js-error-handling

Mais um pouco sobre como lidar com erros!
https://kinsta.com/blog/errors-in-javascript/

Espero que isso ajude!

Carregando publicação patrocinada...