Бодрого вечера всем. Есть небольшой вопрос к знатокам javaScript. Очень хотелось бы понять суть отлова исключений, для чего это надо и почему не использовать просто if..else Какое преимущество даёт блок try..catch...finally, какое не даст никто иной Пример кода, работающего одинаково, только один основан на IF...ELSE, а второй TRY...CATCH, суть выполнения одна и та же.
**///Это на основе IF...ELSE**
function sum2(a,b){
if(typeof (a&&b) === "number") return a+b;
else if(typeof a !== "number") return "Первый";
else return "Второй"
}
console.log(sum2(10,2)); //12
console.log(sum2(10,"2")); //Второй
console.log(sum2("10",2)); //Первый
**///Это на основе TRY...CATCH**
function sum(a,b){
if (typeof (a&&b) === "number") return a+b;
else throw new Error("Не число");
}
try{
console.log(sum(1,"2")); //Не число
} catch(e){
console.log(e.message);
}
Суть не изменилась. Обе функции можно использовать абстрактно. Может кто-нибудь "на пальцах" объяснить основную суть использования TRY...CATCH. Перечитал кучу форумов, и некоторые уверены что дело в стиле программирования и всё. Хотя есть другая когорта программистов, которые считают что отлов исключений даёт некие преимущества, но излагают это таким языком (и преимущественно на СиШарп) что уловить основную идею невозможно. Заранее спасибо.
В большинстве случаев, действительно, почти любой try...catch можно переписать на if...else, НО:
finally подделать не выйдет без дополнительных колдунств и телодвижений.Сборка персонального компьютера от Artline: умный выбор для современных пользователей