/* * Перехватим исключительную (аварийную) ситуацию * с помощью блоков try и catch. */constfs=require('fs')try{letbuf=fs.readFileSync('absent_file_235434534534.dat')}catch(e){//console.log(e)}console.log(12345)
/* * Объект-исключение, передаваемый в блок catch, * зачастую содержит подробную и даже избыточную * информацию. Иногда достаточно краткой характеристики, * получаемой с помощью метода toString. */constfs=require('fs')try{letbuf=fs.readFileSync('absent_file_235434534534.dat')}catch(e){console.log(e.toString())}
/* * Блок finally служит для того, чтобы обработать * оба случая: и тот, когда блок try выполнен с ошибкой, * и тот, когда всё прошло нормально. */constfs=require('fs')try{letbuf=fs.readFileSync('absent_file_235434534534.dat')//let buf = 123}catch(e){console.log(e.toString())}finally{console.log('В любом случае мы здесь.')}
/* * Программист может разрабатывать * собственные исключения для обработки специфических ситуаций. * В большинстве случаев достаточно задействовать ключевое слово * throw и строку с описанием ситуации. */constsayHello=(word)=>{if(!word)throw'Не указано слово'if(!/^[A-Z]/.test(word))throw'Слово должно начинаться с заглавной буквы'console.log(`Hello, ${word}!`)}try{//sayHello()//sayHello('world')sayHello('World')}catch(e){console.log(e)}
Блоки try... catch позволяют перехватывать аварийные ситуации (исключения), возникающие в программе, чтобы максимально корректно преодолеть их. С помощью ключевого слова throw можно самостоятельно возбуждать исключения в ситуациях, которые с точки знерия семантики предметной области являются недопустимыми.
Comments (0)
HTTPSSSH
You can clone a snippet to your computer for local editing.
Learn more.