Андохтани намудҳои гуногуни истисно дар 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 пайғомҳои гуногуни хаторо барои истисноҳои намудҳои гуногун бароварданӣ кунед.