當某個函式無法正常進行時,停止正在執行的動作,並立即跳到某個知道如何處理問題的地方,這就是例外情況機制的作用
用 throw new Error語法
當程式遇到問題時引發/丟出例外時,程式不僅會停止執行且跳出目前執行函式的作用域,還會一路往下跳直到跳出啟動這次呼叫為止,這就稱為堆疊展開
可以將堆疊展開視為一種緊急機制,該機制會中斷一連串函式的執行
throw執行時,會直接終止當下執行的函式內容catch區塊,停止展開,並把 exception 傳給 catch,然後 從那裡開始繼續執行
root 或 global scope,程式將終止,但這可能導致程式的崩潰(crash)為了避免這種情況,因此throw new Error務必搭配try..catch使用
並不需要把所有 function 都用 try..catch 包圍,try..catch 用於以下幾個場合
I/O(imput/output) 關連,可能因外部因素而產生錯誤點的區塊function fetchFromApi() {
    const request = new Request("https://name_of_api", { method: "GET" });
    fetch(request)
        .then((response) => {
            if (response.status !== 200) {
                throw new Error("something went wrong on API server");
            }
            return response.json;
        })
        .then((response) => {
            console.debug(response);
        })
        .catch((error) => {
            console.error(error);
        });
}
fetchFromApi();