关于js的异常
Posted 甲乙丙丁少
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于js的异常相关的知识,希望对你有一定的参考价值。
遇到异常,通常会有两种处理办法
1、处理异常
try{ //可能出现异常的代码 }catch(e){ //处理异常 }
2、抛出异常
public void getName throws Exception(){ }
但是呢,我百度js的关键字竟然发现竟然很少有人去说thows。
为啥呢,难道js里没有,一查,果然没有
那它怎么抛出异常呢,毕竟我不想到处try啊???难道...js不用如果你不处理的话,会自动抛出去?
带着好奇的新,写了个小demo
,,,,果然是这样!!!js的语法页太不严谨了吧。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <button>提交</button> <script src="jquery-3.2.1.min.js" ></script> <script> //模拟某个异步模块处理 var doSomething=function(){ return new Promise(function(resolve, reject){ setTimeout(function(){ var a=2;var b=0;var i=a/b;var result; if(b==0){ reject(\'除数不能为0\'); }else{ result={status:true,data:i} } resolve(result) },2000) }) }; //自己封装的服务 var service={ // getList:async function() throws Exception{你不用手动去抛出异常,调用者直接处理好了,这跟java是有区别的 getList:async function() { var data=await doSomething(); // var data;//我不在此处做处理 // try{data=await doSomething();}catch(e){data=e;} return data; } }; //使用 $(\'button\').click(function(){ (async function(){ // var data=await service.getList(); var data; try{data=await service.getList();}catch(e){data=e;}//直接处理好了 console.log(data) })() }); </script> </body> </html>
再来看看人家java是如何抛出异常的
public class Jsq{ //利用throws关键字声明该方法可能出现的异常 public void division(int a,int b) throws Exception{ return a/b; /*或者手动抛出你定义的异常 if(b == 1){ this.id = id; }else { throw new xxxException("除数为1,你觉得有意义吗?"); }*/ } }
不过呢,值得欣慰的是,js保留了其关键字,相信随着js的发展,这些关键字都会慢慢用上呢
以上是关于关于js的异常的主要内容,如果未能解决你的问题,请参考以下文章