Віды ўзнікаючых сітуацый у JavaScript
У JavaScript вельмі мала сітуацый, у якіх узнікаюць выключэнні. Па-першае, проста таму, што вельмі мала месцаў для іх узнікнення.
Па-другое, таму, што сам язык «ўсёдаруючы»: ён на шмат што глядзіць праз пальцы, напрыклад, на дзяленне на нуль ці на някарэктны HTML код. Нават калі вы пакажаце няправільны шлях да выявы, якую збіраецеся загрузіць, JavaScript вам даруе і гэта і не палічыць выключэннем.
Аднак, выключныя сітуацыі ёсць. Мы разбярэм дзве самыя простыя і на іх прыкладзе вывучым працу з выключэннямі ў JavaScript.
Першае выключэнне ўзнікае, калі мы хочам разабраць някарэктны JSON:
let data = JSON.parse('{1,2,3,4,5}'); // дадзены json някарэктен
А другое выключэнне ўзнікае, калі лакальнае
сховішча, выдзеленае пад наш сайт перапаўняецца
(больш 5 мегабайт). Давайце штучна
выклічам такое выключэнне:
let str = '';
for (let i = 1; i <= 6 * 10 ** 6; i++) { // фарміруем радок больш за 5 мб
str += '+';
}
localStorage.setItem('key', str); // спрабуем запісаць у сховішча
Як JavaScript рэагуе на такія выключныя сітуацыі? Ён проста вываліць памылку ў кансоль і спыняе далейшае выкананне скрыпта.
Наша задача, як праграмістаў, складаецца ў
тым, каб адлавіць такую сітуацыю і як-небудзь
справіцца з ёй, не даючы праграме зусім
спыніць сваё выкананне. Для гэтага
існуюць спецыяльныя канструкцыя try-catch,
якую мы разбярэм у наступных уроках.
Стварыце радок дастаткова вялікага памеру і паспрабуйце запісаць яго ў лакальнае сховішча. Пераканайцеся ў тым, што ў кансолі будзе памылка.
Паспрабуйце разабраць някарэктны JSON. Пераканайцеся ў тым, што ў кансолі будзе памылка.