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