JavaScript-да турли хил истисноларни ташлаш

Келинг, ўзимизнинг истисноимизни ташлаймиз ва бу ҳолатда хатолик объекти қандай ўзгарашини кузатамиз:

javascripttry {
  throw new Error('истисно матни');
} catch (error) {
  console.log(error.name); // 'Error'
  console.log(error.message); // 'истисно матни'
}

Кўриб турганингиздек, бизнинг истисноимизнинг тури - 'Error'. Шунингдек қилиб ташланган ҳар қандай истиснонинг тури ҳам шундай бўлади. Бирок, бу ҳар доим қулай бўлмайди, чунки агар бизда бир нечта истисно бўлса, биз уларни бир-биридан ажрата олмаймиз.

JavaScript-да бу муаммони ҳал қилиш учун имконият мавжуд: фақат Error туридаги эмас, балки JavaScript-нинг ички хатолик турларининг ҳар қайсисидаги истисноларни ташлаш мумкин, масалан TypeError, SyntaxError, RangeError.

Келинг, мисол учун SyntaxError туридаги истиснони ташлаймиз:

javascripttry {
  throw new SyntaxError('истисно матни');
} catch (error) {
  console.log(error.name); // 'SyntaxError'
  console.log(error.message); // 'истисно матни'
}
Задание 1

TypeError туридаги истисно ташланг.

Задание 2

SyntaxError ва RangeError турларидаги истисно ташланг. Бу истисноларни бир try блоки ёрдамида ушланг. catch блокида турли хил турдаги истиснолар учун турли хил хатолик хабарларини чизаринг.