...
*/
function fn1 () {
...
if (...) throw new Error()
}
/**
* @throws ... <здесь тоже самое что и в fn1>
*/
function fn2 () {
fn1()
}
// клиентский код
fn2()
Вопрос, стоит ли в fn2 ловить все исключения явно и прокидывать их дальше?
function fn2 () {
try {
fn1()
} catch (e) {
throw e
}
}
Или же стоит оставлять вот такой неявный проброс (как в первом варианте), ограничиваясь подписью жсдока?
Есть assert функции
Ну заменить throw на assert, все равно функция выбрасывает исключение же, и его нужно ловить в условной fn2
Ловить чтобы дальше пробросить, ничего не сделав - это бессмысленный бойлерплейт, так делать не надо
Ну вдруг здесь работает правило "явное лучше неявного". Т.е. первый вариант лучше и подписи jsdoc хватит?
Обсуждают сегодня