Я попытался создать один файл, содержащий классы ошибок. Предполагается, что этот файл необходим для того, чтобы кто-то нуждался в пользовательском классе ошибок, который должен находиться в пределах блока catch
.
Фрагмент выглядит следующим образом:
class FooError extends Error {
constructor() {
this.name = 'FooError';
}
}
class BarError extends Error {
constructor() {
this.name = 'BarError';
}
}
module.exports = FooError;
module.exports = BarError;
Я должен используйте ошибку, подобную этой:
async function doSomething() {
const requestResult = await doRequest();
if (requestResult.error) {
const errorName = requestResult.error.name;
if (errorName === 'Foo') { throw new FooError('some error message #1'); }
if (errorName === 'Bar') { throw new BarError('some error message #2'); }
throw new Error('unhandled error');
}
return requestResult.data;
}
Но тогда Эслинт жалуется, что лучше создать 1 класс на 1 файл, что понятно, так как несколько классов с логикой в нем засорят его за короткое время, сделав его читабельностью катастрофа.
Но тогда, если этим классам ошибок нужен по 1 файлу для каждого, я чувствую, что это перебор. Не говоря уже о том, что поддерживать эти файлы 1 к 1 совсем не весело, когда их много в одной папке.
Исходя из ruby, я обычно собираю эти классы ошибок в один файл, поскольку просто 1-вкладыш и рубокоп, похоже, тоже не жалуются на это.
Есть мысли по этому поводу? Я рассматриваю возможность отключить правила для этого указанного c файла, хотя я не знаю, подходит ли это к лучшему
Будет ли читаемость страдать с точки зрения других, если я это сделаю?
Если так, есть ли лучший способ организовать это лучше без создания 1 файла для каждого класса ошибок?
Заранее спасибо.