Андохтани намудҳои гуногуни истисно дар JavaScript
Биёед истиснои худро андохта нигарем, ки дар ин ҳолат объект бо хато чӣ гуна амал мекунад:
try {
throw new Error('матини истисно');
} catch (error) {
console.log(error.name); // 'Error'
console.log(error.message); // 'матини истисно'
}
Чӣ тавре ки мебинед, намуди истиснои мо - 'Error'.
Ҳамин намуд барои ҳамаи истисноҳое, ки ба ин тарз
андохта мешаванд, хоҳад буд. Аммо ин ҳамеша
мувофиқ нест, зеро агар мо якчанд истисно дошта бошем,
наметавонем онҳоро аз ҳамдигар фарқ кунем.
Дар JavaScript ҳалли ин мушкил пешбинӣ шудааст:
метавон истисноҳоро на танҳо аз намуди
Error, балки аз ҳар як намуди хатои дарунсохти JavaScript
низ андохт, масалан, TypeError,
SyntaxError, RangeError.
Биёед барои мисол истисноеро аз намуди
SyntaxError андозем:
try {
throw new SyntaxError('матини истисно');
} catch (error) {
console.log(error.name); // 'SyntaxError'
console.log(error.message); // 'матини истисно'
}
Истисноеро аз намуди TypeError андохед.
Истисноеро аз намудҳои SyntaxError
ва RangeError андохед. Ин истисноҳоро
бо истифода аз як блоки try бигиред. Дар блоки catch
пайғомҳои гуногуни хаторо барои истисноҳои
намудҳои гуногун бароварданӣ кунед.