和java一样,javascript也有自己的异常处理机制,也是throw、try和catch这三个关键字实现。
直接上例子吧:
> var add = function(a,b){
... if(typeof a !== 'number' || typeof b !== 'number'){
..... throw {
....... name: 'TypeError',
....... message: 'add needs numbers'
....... }
..... }
... return a + b;
... }
undefined
> try{
... add('sss');
... } catch(e){
... console.log(e);
... }
{ name: 'TypeError', message: 'add needs numbers' }
undefined
哈哈,很简单吧。
我们详细讲一下throw的异常对象吧,实际上javascript对throw的对象没有什么要求,可以是数字可以是Object,甚至可以是方法,只要约定好throw的object类型,catch之后按照约定的类型进行处理就好,具体的可以看看官方文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/throw