Увод у изузетне ситуације у JavaScript-у
Сада ћемо разматрати изузетне ситуације у JavaScript-у. За почетак ћу дати неки увод, у коме ће бити примери изузетних ситуација уопште за било који програмски језик, а затим ћемо разјаснити како ствари стоје у JavaScript-у.
Када пишемо наше програме, имплицитно рачунамо на то да ће сви програмско-технички механизми које користимо радити исправно.
Међутим, то није увек тако. Приликом преноса података преко мреже долази до прекида везе и подаци стижу до нас у неисправном облику, или уопште не стижу. Приликом уписа фајла испоставља се да је додељени простор на хард диску потрошен, и фајл се не може уписати. Приликом читања фајла испоставља се да такав фајл не постоји и немамо одакле да читамо. Приликом штампања података на штампачу долази до прекида кабла који повезује штампач и рачунар.
Све описанe ситуације имају заједничку суштину: долази до одређеног квара, који доводи до немогућности или бесмислености завршетка планиране операције.
Постоје такође ситуације у којима се дешава нека грешка, која није квар. На пример, питате корисника за његов email, а он унесе email у неисправном формату. Јасно је да наш програм не може наставити да обрађује email, јер није исправан. Али, ипак, то није изузетна ситуација. Наш програм може сам да исправи ситуацију: приказаће поруку о грешци и корисник ће поновити свој унос.
Заправо, разлика између квара и не-квара је прилично нејасна. Догађај који један програм може тумачити као изузетну ситуацију, други програм може тумачити као неку грешку са којом може да се избори.
Критеријум је следећи: ако при настанку проблема ваш програм може да настави да извршава оно за шта је намењен, онда то није изузетна ситуација, а ако не може - онда јесте, то је изузетак.
На пример, имамо програм који треба да пита корисника за email. Ако корисник унесе email у неисправном формату - то није квар. То је очекивани проблем и наш програм ће питати корисника за email онолико пута колико је потребно док га не унесе исправно.
Нека наш програм, који пита за email, мора такође да пошаље тај исправан email преко интернета. При томе се испоставља да интернет не ради. Ево, то је већ проблем: програм никако неће моћи да пошаље податке преко интернета, ако интернет не ради. Програм, ипак, може да настави своје извршавање: може да прикаже информацију о проблему, понови покушај слања после одређеног времена, и тако даље. Али те радње нису баш оно за што је програм био намењен, јер основну радњу - слање email-а програм неће моћи да изврши.
Веома често то, да ли је ситуација изузетна или не, зависи од програмског језика. У многим језицима, ако се изненада деси дељење са нулом - то се сматра изузетком (јер се не сме делити са нулом), али у JavaScript-у - не сматра се (у JavaScript-у се сме делити са нулом).