Aplicación de tipos de excepción en JavaScript

Supongamos que tenemos una función que acepta como parámetro JSON con un array de datos y escribe cada elemento de este array en el almacenamiento local:

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

En esta función, una situación excepcional puede ocurrir en dos lugares: durante el análisis del JSON y al intentar guardar los datos en el almacenamiento local.

Supongamos que, por ejemplo, como manejo de errores decidimos mostrar algún mensaje sobre los problemas:

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

Nuestro mensaje está bien, pero no diferencia los problemas que surgen. Sería más lógico mostrar un mensaje sobre quė problema específico ocurrió.

Para ello, distingamos los errores que surgen por su nombre:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('se acabó el espacio en el almacenamiento');
  }
  
  if (error.name == 'SyntaxError') {
    alert('JSON incorrecto');
  }
}
Задание 1

Copie el código de mi función saveData, y luego, sin mirar mi código, implemente el manejo de errores que he descrito.

Задание 2

Cree deliberadamente y por turnos situaciones excepcionales que pueden ocurrir en la función saveData.