⊗jsSpExcAT 144 of 294 menu

Aplicação de tipos de exceção em JavaScript

Suponha que temos uma função que aceita como parâmetro um JSON com um array de dados e grava cada elemento desse array no armazenamento local:

function saveData(json) { let arr = JSON.parse(json); for (let i = 0; i < arr.length; i++) { localStorage.setItem(i, arr[i]); } }

Nesta função, uma situação excepcional pode ocorrer em dois lugares: ao analisar o JSON e ao tentar salvar os dados no armazenamento local.

Suponha, por exemplo, que para o tratamento de erros decidimos exibir uma mensagem sobre os problemas:

try { saveData('{1,2,3,4,5}'); } catch (error) { alert('alguns problemas'); }

Nossa mensagem é boa, claro, mas ela não diferencia os problemas que surgiram. Seria mais lógico exibir uma mensagem sobre qual problema específico ocorreu.

Para isso, vamos distinguir os erros que ocorrem pelo nome:

try { saveData('{1,2,3,4,5}'); } catch (error) { if (error.name == 'QuotaExceededError') { alert('espaço de armazenamento esgotado'); } if (error.name == 'SyntaxError') { alert('JSON inválido'); } }

Copie o código da minha função saveData, e então, sem olhar o meu código, implemente o tratamento de erros que descrevi.

Propositalmente, crie sequencialmente situações excepcionais que podem ocorrer na função saveData.

trderuropt