1. 程式人生 > >關於JavaScript的學習(十七)——錯誤處理與除錯

關於JavaScript的學習(十七)——錯誤處理與除錯

第十七章

  錯誤處理對於今天覆雜的Web應用程式開發而言至關重要。不能提前預測到可能發生的錯誤,不能提前採取回覆策略,可能導致較差的使用者體驗,最終引發使用者不滿。多數瀏覽器在預設情況下都不會向用戶報告錯誤,因此在開發和除錯期間需要啟動瀏覽器的錯誤報告功能。然而,在投入執行的產品程式碼中,則不應該再有諸如此類的錯誤報告出現。

下面是幾種避免瀏覽器響應JavaScript錯誤的方法。

  • 在可能發生錯誤的地方使用try-catch語句,這樣你還有機會以適當的方式對錯誤給出響應,而不必沿用瀏覽器處理錯誤的機制。
  • 使用window.onerror事件處理程式,這種方式可以接受try-catch不能處理的所有錯誤(僅限於IE、Firefox和Chrome)。

另外,對於Web應用程式都應該分析可能的錯誤來源,並制定處理錯誤的方案。

  • 首先,必須要明確什麼是致命錯誤,什麼是非致命錯誤。
  • 其次,再分析程式碼,以判斷最可能發生的錯誤。JavaScript中發生錯誤的主要原因如下:
    • 型別轉換
    • 未充分檢測資料型別
    • 傳送給伺服器或從伺服器接收到的資料有錯誤

  IE、Firefox、Chrome、Opera和Safari都有JavaScript偵錯程式,有的是內建的,有的是以需要下載的擴充套件形式存在的。這些偵錯程式都支援設定斷點、控制程式碼執行及在執行時檢測變數的值。

相關推薦

關於JavaScript學習——錯誤處理除錯

第十七章   錯誤處理對於今天覆雜的Web應用程式開發而言至關重要。不能提前預測到可能發生的錯誤,不能提前採取回覆策略,可能導致較差的使用者體驗,最終引發使用者不滿。多數瀏覽器在預設情況下都不會向用戶報告錯誤,因此在開發和除錯期間需要啟動瀏覽器的錯誤報告功

JavaScript學習--數值處理物件

目錄 目錄 Math物件 1.math物件的屬性 例子:   var piValue=Ma

python學習 擴展python

生成 實現 語言 擴展 運行速度 ava python學習 簡單 用c語言實現 c, c++, java比python快幾個數量級。 17.1 考慮哪個更重要 開發速度還是運行速度更重要。 17.2 非常簡單的途徑:Jython和IronPython Jython可以直接訪

C++語言學習——模板

china typename itl while ptr 特殊 實例化 需求 所有 C++語言學習(十七)——模板 一、模板簡介 泛型(Generic Programming)即是指具有在多種數據類型上皆可操作的含意。 泛型編程的代表作品STL是一種高效、泛型、可交互操作的

C++語言學習——異常處理

right data ges cal 修飾符 當前 ins 最終 cati C++語言學習(十八)——異常處理 一、C語言異常處理 異常是指程序在運行過程中產生可預料的執行分支。如除0操作,數組訪問越界、要打開的文件不存在。Bug是指程序中的錯誤,是不被預期的運行方式。如野

機器學習之python學習

今天來學習python中的tuple、 這個資料結果用的還是比較少的。 當然了,你們也可以參考廖雪峰大神的python教學快速入門。 程式碼塊 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Author : SundayC

JMeter學習JMeter測試Java 目的:對Java程式進行測試

目的:對Java程式進行測試   目錄 一、核心步驟 二、例項 三、JMeter Java Sampler介紹 四、自帶Java Request Sampler   一、核心步驟 1.建立一個Java工程; 2.將JMeter的lib目錄下

機器學習 kaggle競賽之泰坦尼克號專案實戰-2

導航        想寫這篇部落格的由衷是做完幾個專案,有時對於圖的畫法和模型融合演算法原理理解還很膚淺,特此加深一下印象。 內容概覽 圖 pandas、matplotlib、seaborn 餅圖 直方圖

python學習——補充內建函式、使用迭代器協議實現斐波那契數列、描述符、pycharm的問題

一、補充內建函式 #--------------------------isinstance/isinbclass-------------- class Foo: pass class Bar(Foo): pass b1=Bar() print(isinstance(b1,

深度學習

1、在殘差網路中利用1*1進行降維,即設計一個瓶頸層來使得網路更深可能不是一個好主意,網路的通道更多即網路更寬一些在實驗中可能更能利用GPU的運算資源。 2、一個訓練的技巧,當使用較小的學習率時使用較大的動量,使用較大的學習率時使用較小的動量,兩者的關係如圖所示: 3、如果損失函式的表

opencv學習:影象金子塔

邊緣檢測運算元 參考學習連結:https://blog.csdn.net/xiaowei_cqu/article/details/7829481 影象金子塔 參考學習連結:https://www.cnblogs.com/Matrix420/p/4214123.html open

webpack學習:使用 process.env.NODE_ENV 區別生產模式和開發模式

demo地址: https://github.com/Lkkkkkkg/webpack-demo 繼上一次分離生產模式和開發模式的配置: https://blog.csdn.net/qq593249106/article/details/84964816 合併程式碼 之前因為開發模式

webpack學習:快取

demo地址: https://github.com/Lkkkkkkg/webpack-demo 繼上一次使用 process.env.NODE_ENV 區別生產模式和開發模式: https://blog.csdn.net/qq593249106/article/details/849705

機器學習深度學習系列連載: 第一部分 機器學習非監督度學習-2 Unsupervised Learning-4Generative Models

生成模型 Generative Models 用非監督學習生成結構化資料,是非監督模型的一個重要分支,本節重點介紹三個演算法: Pixel RNN ,VAE 和GAN(以後會重點講解原理) 1. Pixel RNN RNN目前還沒有介紹,,以後會重點講解,大家

dart語言學習— 方法物件

含義 方法可作為物件賦值給其他變數 方法可作為引數傳遞給其他方法 void main(List<String> args) { var func = printHello; Function func1 = printHello; func

spring深入學習 IOC 之分析各 scope 的 bean 建立

在 Spring 中存在著不同的 scope,預設是 singleton ,還有 prototype、request 等等其他的 scope,他們的初始化步驟是怎樣的呢?這個答案在這篇部落格中給出。 singleton Spring 的 scope 預設為 singleton,其初始化的程式

訊息中介軟體--RabbitMQ學習---高階特性之死信佇列

死信佇列:DLX,Dead- Letter- Exchange 利用DLX,當訊息在一個佇列中變成死信( dead message)之後它能被重新 publish到另一個 Exchange,這個 Exchange就是DLX 死信佇列訊息變成死信有一下幾種情況

Spring 學習——Spring AOP之返回通知、異常通知和環繞通知

返回通知 •無論連線點是正常返回還是丟擲異常, 後置通知都會執行. 如果只想在連線點返回的時候記錄日誌, 應使用返回通知代替後置通知.   在返回通知中訪問連線點的返回值 •在返回通知中, 只要將 returning 屬性新增到 @AfterReturning 註解中

opencv學習之XML和YAML檔案讀寫操作

可能大部分人到現在接觸的XML和YAML檔案很少,等以後訓練人臉模型進行人臉識別的時候用的就多了。現在先了解一下這兩種檔案型別。 XML:Extensible Markup Language,可擴充套件標記語言,標準通用語言的子集,是一種用於標記電子檔案使其具

深度學習——SSD, YOLOv2

SSD SSD是Wei Liu於2016年提出的演算法。 論文: 《SSD: Single Shot MultiBox Detector》 程式碼: 網路結構 YOLO有一些缺陷:每個網格只預測一個物體,容易造成漏檢;對於物體的尺