Įvadas į išimtines situacijas JavaScript
Dabar nagrinėsime išimtines situacijas JavaScript. Pirmiausia padarysiu įvadą, kuriame bus pavyzdžių išimtinių situacijų apskritai bet kurioms programavimo kalboms, o tada išsiaiškinsime, kaip tai veikia JavaScript.
Kai rašome savo programas, mes netiesiogiai tikimės, kad visi mūsų naudojami programiniai-techniniai mechanizmai veiks teisingai.
Tačiau taip būna ne visada. Perduodant duomenis tinklu, ryšys nutrūksta ir duomenys ateina pas mus neteisingos formos, arba išvis neateina. Rašant failą, pasirodo, kad mums skirta vieta kietajame diske baigėsi, ir failas negali būti įrašytas. Skaitant failą, pasirodo, kad tokio failo nėra ir mums nėra iš kur skaityti. Spausdinant duomenis spausdintuve, nutrūksta kabelis, jungiantis spausdintuvą ir kompiuterį.
Visos aprašytos situacijos turi bendrą esmę: įvyksta tam tikras sutrikimas, kuris sukelia planuotos operacijos užbaigimo neįmanomumą arba beprasmybę.
Būna ir situacijų, kuriose įvyksta tam tikra klaida, nėra sutrikimas. Pavyzdžiui, jūs klausiate vartotojo jo el. pašto, ir jis įveda el. paštą neteisingu formatu. Suprantama, kad mūsų programa negali toliau apdoroti el. pašto, nes jis nėra teisingas. Bet, vis dėlto, tai - ne išimtinė situacija. Mūsų programa gali pati išspręsti situaciją: ji išves klaidos pranešimą ir vartotojas pakartos savo įvedimą.
Tiesą sakant, skirtumas tarp sutrikimo ir ne sutrikimo yra gana miglotas. Įvykis, kurį viena programa gali traktuoti kaip išimtinę situaciją, kita programa gali traktuoti kaip tam tikrą klaidą, su kuria ji gali susitvarkyti.
Kriterijus čia toks: jei iškilus problemai jūsų programa gali tęsti daryti tai, kam ji skirta, tai tai nėra išimtinė situacija, o jei negali - tai taip, tai yra išimtis.
Pavyzdžiui, mes turime programą, kuri turi paklausti vartotojo el. pašto. Jei vartotojas įvedė el. paštą neteisingu formatu - tai nėra sutrikimas. Tai tikėtina problema ir mūsų programa klaus vartotojo el. pašto tiek kartų, kiek jis jo neįves teisingai.
Tarkime, mūsų programa, kuri klausia el. pašto, taip pat turi išsiųsti šį teisingą el. paštą per internetą. Tuo tarpu pasirodo, kad internetas neveikia. Štai tai jau problema: programa jokiu būdu negalės išsiųsti duomenų per internetą, jei internetas neveikia. Programa, vis dėlto, gali tęsti savo vykdymą: ji gali išvesti informaciją apie problemą, pakartoti siuntimo bandymą po tam tikro laiko, ir taip toliau. Bet šie veiksmai jau ne visai tai, kam programa buvo skirta, nes pagrindinis veiksmas - el. pašto siuntimas - programa padaryti negalės.
Labai dažnai tai, ar situacija yra išimtinė, ar ne, priklauso nuo programavimo kalbos. Daugelyje kalbų, jei staiga įvyko dalyba iš nulio - tai laikoma išimtimi (nes dalinti iš nulio negalima), bet JavaScript - nelaikoma (JavaScript dalinti iš nulio galima).