«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Попробуйте... Поймайте безопасное задание V/s (?=): благо или проклятие для современного развития?

Попробуйте... Поймайте безопасное задание V/s (?=): благо или проклятие для современного развития?

Опубликовано 11 сентября 2024 г.
Просматривать:909

Try...Catch V/s Safe Assignment (?=): A Boon or a Curse for Modern Development?

Недавно я обнаружил новый оператор безопасного присваивания (?.=), представленный в JavaScript, и я действительно очарован его простотой. ?

Оператор безопасного присваивания (SAO) — это сокращенная альтернатива традиционному блоку try...catch. Он позволяет ловить ошибки внутри программы без написания явного кода обработки ошибок для каждой операции. Вот пример:

const [error, response] ?= await fetch("https://api.example.com/data");

Вот и все! Это так просто. Если запрос на выборку выдает ошибку, она автоматически сохраняется в константе ошибки; в противном случае ответ сохраняет результат. Довольно круто, правда?

Но подождите… это еще не все.

При использовании SAO вам все равно придется обрабатывать ошибки в дальнейшем, например:

async function getData() {
  const [requestError, response] ?= await fetch("https://api.example.com/data");

  if (requestError) {
    handleRequestError(requestError);
    return;
  }

  const [parseError, json] ?= await response.json();

  if (parseError) {
    handleParseError(parseError);
    return;
  }

  const [validationError, data] ?= validation.parse(json);

  if (validationError) {
    handleValidationError(validationError);
    return;
  }

  return data;
}

Хотя SAO упрощает обработку ошибок, это может привести к более подробному коду. Сравните это с традиционным блоком try...catch:

async function getData() {
try {
  const response = await fetch("https://api.example.com/data");
  const json = await response.json();
  const data = validation.parse(json);
  return data;
} catch (error) {
  handleError(error);
  return;
}
}

В этом случае try...catch занимает всего 9 строк кода, а SAO — примерно в два раза больше.

И что вы думаете? Экономит ли оператор безопасного присвоения время или добавляет ненужную сложность?

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/nikhilagr15/trycatch-vs-safe-assignment-a-boon-or-a-curse-for-modern-development-55dg?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с Study_golang@163 .comdelete
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3