ភាពមិនប្រក្រតី (exception) គឺជារឿងហេតុមិនធម្មតាទាំងឡាយណា ដែលកើតមានឡើងនៅពេលដែលកម្មវិធីកំពុងតែដំណើរការ។ រឿងហេតុមិនធម្មតាទាំងនោះ មានដូចជាកំហុសផ្សេងៗដែលកើតមានឡើង បណ្តាលមកពីការសរសេរបញ្ជាមិនត្រឹមត្រូវជាដើម ។ល។ និង ។ល។ ។
ភាពមិនប្រក្រតីមានច្រើនប្រភេទណាស់ ដូចជានៅពេលដែលយើងសរសេរបញ្ជាមិនត្រឹមត្រូវតាមក្បួនខ្នាតនៅក្នុងភាសា ES6 ភាពមិនប្រក្រតីប្រភេទ TypeError នឹងកើតមានឡើង។ ពិនិត្យកម្មវិធីខាងក្រោមនេះ៖
try{
let myDate = new Date()
/*ការសរសេរឈ្មោះវិធី getMonth នៃថ្នាក់ Date ខុស
បណ្តាលអោយភាពមិនប្រក្រតីកើតមានឡើង*/
console.log(`This is the month ${myDate.etMonth()+1}`)
}catch(exception){
console.log(`The exception is of type ${exception.name}`)
}
តាមការពិត នៅពេលដែលភាពមិនប្រក្រតីបានកើតមានឡើង វត្ថុដែលជាសិស្សនៃថ្នាក់ណាមួយត្រូវបានបង្កើតឡើង។ ជាក់ស្តែង ដូចជានៅពេលដែលយើងយកវិធីឈ្មោះ getMonth មកប្រើ ដោយសរសេរឈ្មោះរបស់វិធីនោះមិនត្រឹមត្រូវ វត្ថុមួយដែលជាសិស្សនៃថ្នាក់ឈ្មោះ TypeError ត្រូវបានបង្កើតឡើង។ ហើយក្រៅពីថ្នាក់ឈ្មោះ TypeError នៅមានថ្នាក់នៃភាពមិនប្រក្រតីជាច្រើនទៀតដូចខាងក្រោមនេះ៖
- Error
- EvalError
- RangeError
- ReferenceError
- SyntaxError
- TypeError
- URIError
- DOMException
- EventException
- RangeException