25 异常处理

错误处理
  为什么要进行错误处理
    如果不处理,程序运行就会终止
  怎么捕获错误
    try ... catch ... finally
错误类型
  JavaScript有一个标准的Error对象表示错误,还有从Error派生的TypeError、ReferenceError等错误对象。

怎么处理error
  我们在处理错误时,可以通过catch(e)捕获的变量e访问错误对象
  使用变量e是一个习惯用法,也可以以其他变量名命名,如catch(ex)
抛出错误
  程序也可以主动抛出一个错误,让执行流程直接跳转到catch块。抛出错误使用throw语句
  实际上,JavaScript允许抛出任意对象,包括数字、字符串。但是,最好还是抛出一个Error对象。

错误传播
  如果在一个函数内部发生了错误,它自身没有捕获,错误就会被抛到外层调用函数,如果外层函数也没有捕获,该错误会一直沿着函数调用链向上抛出,直到被JavaScript引擎捕获,代码终止执行。

同步错误处理(使用try..catch):
  同步的特性是:从上到下执行代码
  页面加载时从head开始加载的,js也是head中的js先执行

异步错误处理
  在捕获的当时,回调函数并未执行,所以无法在调用时捕获
    编写JavaScript代码时,我们要时刻牢记,JavaScript引擎是一个事件驱动的执行引擎,代码总是以单线程执行,而回调函数的执行需要等到下一个满足条件的事件出现后,才会被执行。
  涉及到异步代码,无法在调用时捕获,因为调用函数执行时,回调函数未执行,回调函数执行时,调用函数早就执行完了,不再捕获异常了

异常可以是 JavaScript 字符串、数字、逻辑值或对象。

try{
  var input =document.querySelector("#text1").value;
  console.log("input="+input)
  if(input=="") throw "值为空";
  if(isNaN(input)) throw "不是数字";
  if(input>10) throw "太大";
  if(input<5) throw "太小";
  }catch(err){
  p.innerHTML="错误:"+err+"!";
}

  

原文地址:https://www.cnblogs.com/xuanjian-91/p/10267703.html