JavaScriptにおける例外タイプの適用

例えば、パラメータとしてデータ配列のJSONを受け取り、 その配列の各要素をローカルストレージに保存する関数があるとします:

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

この関数では、JSONの解析時とローカルストレージへの データ保存試行時の2箇所で例外状況が発生する可能性があります。

例えば、エラー処理として何らかの問題のメッセージを 表示することにしたとします:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  alert('何らかの問題が発生しました');
}

私たちのメッセージは確かに良いですが、発生した問題を まったく区別していません。どのような問題が発生したか についてのメッセージを表示する方がより論理的でしょう。

そのためには、発生したエラーを名前で区別します:

javascripttry {
  saveData('{1,2,3,4,5}');
} catch (error) {
  if (error.name == 'QuotaExceededError') {
    alert('ストレージの空き容量が不足しています');
  }
  
  if (error.name == 'SyntaxError') {
    alert('不正なJSON形式です');
  }
}
Задание 1

私の関数saveDataのコードをコピーし、 その後、私のコードを見ずに私が説明したエラー処理を実装してください。

Задание 2

関数saveDataで発生する可能性のある例外状況を、 意図的に順番に作成してください。