遇到异常,通常会有两种处理办法
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的异常的更多相关文章

  1. Atitit.跨语言异常转换机制 java c# php到js的异常转换

    Atitit.跨语言异常转换机制 java c# php到js的异常转换 1. bizEx   直接抓取,然后js catchEX1 2. Chkec runtimeEx1 3. Other异常..J ...

  2. 【原】聊聊js代码异常监控

    在平时的工作,js报错是比较常见的一个情景,尤其是有一些错误可能我们在本地测试的时候测试不出来,当发布到线上之后才可以发现,如果抢救及时,那还好,假如很晚才发 现,那就可能造成很大的损失了.如果我们前 ...

  3. 通过寄生组合式继承创建js的异常类

    最近项目中在做js的统一的异常处理,需要自定义异常类.理想的设计方案为:自定义一个异常错误类BaseError,继承自Error,然后再自定义若干个系统异常,例如用户取消异常.表单异常.网络异常,这些 ...

  4. 如何调试JS查看异常信息

    如果页面上有错误,html页面的控制台会报错,可以查看报错信息,找到对应的行,找到出错的位置.也可以通过editplus运行调试,editplus会以弹框的形式出现提示,哪行的什么位置什么错误,需要记 ...

  5. js jquery 异常

    1.0 TypeError: $(...).carousel is not a function原因:可能是没有引用或者引用了多个jquery:<script src="~/js/jq ...

  6. cocos2d JS 错误异常抛出捕获和崩溃拦截

    Error对象 一旦代码解析或运行时发生错误,JavaScript引擎就会自动产生并抛出一个Error对象的实例,然后整个程序就中断在发生错误的地方. Error对象的实例有三个最基本的属性: nam ...

  7. js循环异常

    1.当在循环数组时,数组发生变化,循环item 为定义undifined $.each(blogMng.commonKit.upLoadMng.medias, function (index, ite ...

  8. domain---Node.js 异步异常的处理与domain模块解析

    var domain = require('domain'); app.use(function (req, res, next) { var reqDomain = domain.create(); ...

  9. VS Code 中 HTML 文档注释 js 语句异常

    今天用 VS Code 编辑 html 文档时,发现快捷键注释 js 代码显示成 “<!--  …… -->”,怀疑是不是因为安装了某个插件,随后排查出系 Jinja 所致,将其禁用之后就 ...

随机推荐

  1. hdu 1348:Wall(计算几何,求凸包周长)

    Wall Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  2. Rename a local and remote branch in git

    If you have named a branch incorrectly AND pushed this to the remote repository follow these steps b ...

  3. sys.argv 详细用法

    sys.argv 用于获取命令行参数,用法如下: [root@localhost ~]$ cat 1.py #!/usr/bin/env python #-*- coding:utf-8 -*- im ...

  4. springboot整合mybatis之用外置服务器启动项目(二)

    在上一篇中我们是用的springboot自带的tomcat服务器,接下来想试一下 将springboot当做一个web项目 放在eclipse中用tomcat来启动. 首先在pom.xml中加上,移除 ...

  5. HTML-网页常见错误

    400 请求出错  由于语法格式有误,服务器无法理解此请求.不作修改,客户程序就无法重复此请求.  HTTP 错误 401  401.1 未授权:登录失败  此错误表明传输给服务器的证书与登录服务器所 ...

  6. 160506、Spring mvc新手入门(11)-返回json 字符串的其他方式

    Spring MVC返回 json字符串的方式有很多种方法,这里介绍最简单,也是最常使用的两种方式 一.使用  PrintWriter printWriter  直接输出字符串到返回结果中    不需 ...

  7. 启动windows服务的bat文件编写格式

    1.bat文件需要和bin文件内容放在一起 启动服务的bat文件如下: sc create 邮件服务 binPath= "%~dp0可执行文件名称.exe" start= auto ...

  8. nested exception is java.lang.IllegalStateException: Context namespace element 'annotation-config' a

    公司还用的是spring低版本,今天用jre 8测试了一下,发现错误: Unexpected exception parsing XML document from class path resour ...

  9. Ckeditor事件绑定

    最近有个需求是要在点击CKeditor的时候触发某个判断的事件.试了一些方法都不可行,自己写的onclick时间都会被编辑器屏蔽.可以对对象加载完成绑定事件代码如下. CKEDITOR.instanc ...

  10. 安装canal

    一.安装前准备 配置Mysql: [mysqld] log-bin=mysql-bin #添加这一行就ok binlog-format=ROW #选择row模式 server_id=1 #配置mysq ...