js中错误处理的相关知识

错误bug是指程序执行过程中,导致程序无法正常执行的情况。

后果:程序会强行中断退出;

    错误处理:
                即使程序出现错误,也保证程序不异常中断的机制

一般的使用的代码如下:

try{//始终执行
            //可能出现的代码

}catch(err){//只有发生错误时才执行;
                         出错时执行的错误处理代码-----通知用户,记录日志,保存进度。
                         err:错误对象,
}
   finally{//无论是否出错,都必须执行的代码----一般用于释放资源。

但是这会导致一个问题,就是放在try catch中的代码,执行效率会降低。

解决方式:
          1.尽量少的将代码放入try catch
          2.如果可提前预知错误原因,可用if else语句来做判断。提前预防错误。

 1 var num = +prompt(‘请输入一个数字‘),
 2             d = +prompt(‘输入一个小数位数‘);
 3
 4
 5     try {
 6         var result = num.toFixed(d);
 7         alert(result);
 8     }catch(err){
 9         alert(‘出错了‘);
10         console.log(String(err));
11     }
12     finally {
13         console.log(‘释放资源‘);
14         num = null;d =null;}      document.write(‘程序继续执行....‘)

改善如下:

1  if(d>=0&&d<=20){
2        var result = num.toFixed(d);
3        alert(result);
4
5      }else{
6        alert(‘出错了‘);
7        console.log(‘111111111‘);
8     }
9     document.write(‘程序继续执行....‘)

抛出自定义异常

 throw new Error(‘错误信息’);

Js中错误对象的类型:——6种
(要经常总结错误的类型,然后在博客中写出)
SyntaxError:语法错误,程序的语法写错了
ReferenceError:引用错误,要用的变量没找到
TypeError:类型错误,错误的使用对象的类型
比如:对非数组使用[];对非函数使用();对null/undefined使用.xxx;要调用的函数,对象中没有:console.write
RangeError:范围错误,参数超范围;
比如:toFixed(d) d:0-20之间,如果写-2,就出错。
URIerror,EvelError;

时间: 2024-10-13 20:22:50

js中错误处理的相关知识的相关文章

js中的二进制操作相关类型和方法

Blob数据对象 MDN官方解释Blob对象:一个Blob对象就是一个包含有只读原始数据的类文件对象.Blob对象中的数据并不一定得是JavaScript中的原生形式.File接口基于Blob, 继承了Blob的功能,并且扩展支持了用户计算机上的本地文件. 创建Blob对象的方法有几种,可以调用Blob构造函数,还可以使用一个已有Blob对象上的slice()方法切出另一个Blob对象,还可以调用canvas对象上的toBlob方法. 实际上,Blob是计算机通用术语之一,全称写作:BLOB(b

js中函数的一些理论知识

  函数的一些理论知识 1. 函数:                执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的声明方式:                 1> 函数声明:在函数里,必须手动去声明函数的返回值,如果返回值没有申明,则此函数返回值为undefined,,return是函数内部使用的,形参能自动声明,而实参不能自动声明为undefined.我们在调用函数时要:函数+()这种形式.不然就是函数本身.

js中错误处理机制

1.基本知识 1. 错误对象 Error,SyntaxError,RangeError, ReferenceError,TypeError,URIError 上面的都是构造函数: new 命令可以生成错误实例对象:可以传入描述作为参数,成为实例对象的message属性: 除了message属性,还有两个非标准属性(name, stack)stack是调用栈 var err = new Error("错误实例"); err.message; // "错误实例" err

js中闭包和对象相关知识点

学习js时候,读到几篇不错的博客.http://www.cnblogs.com/yexiaochai/p/3802681.html一,作用域 和C.C++.Java 等常见语言不同,JavaScript 的作用域不是以花括号包围的块级作用域(block scope),这个特性经常被大多数人忽视,因而导致莫名其妙的错误.例如下面代码,在大多数类C 的语言中会出现变量未定义的错误,而在JavaScript 中却完全合法: if(true) { var somevar = 'value'; } con

JS中错误处理

1 错误类型 1. Error 是基本类型 其他错误都继承该类型 2. EvalError 使用eval()函数时发生异常 3. RangeError 4. ReferenceError 找不到对象的情况下(导致object expected ),访问不存在的对象的时发生 5. SyntaxError 语法错误 6. TypeError 变量中保存着意外类型,或者在访问不存在的方法时 7. URLError try { someFunction(); } catch (error) { if (

js 作用域,闭包及其相关知识的总结

面试必问题,闭包是啥有啥子用,觉得自己之前回答的并不好,所以这次复习红皮书的时候总结一下. 提到闭包,相关的知识点比较多,所以先罗列一下要讲的内容. 1. 作用域链,活动对象 2. 关于this对象 3. 垃圾回收机制,内存泄漏 4. 模仿块级作用域,私有变量 涉及的内容这么多,也难怪面试官喜欢问这个问题啊,就像niko大神说的,应该是根据回答的深浅了解你的思维模式吧.废话不多说,开始步入正题. 1. 作用域链,活动对象 活动对象:活动对象就是在函数第一次调用时,创建一个对象,在函数运行期是可变

asp.net 中http协议及相关知识(零碎知识记录)

1.Web开发是和Http协议打交道的.http协议的版本有 http/0.9, http/1.0, http/1.1. 2.http协议分析工具主要有: DebugBar-----Http(s)标签的内容,免费,只能分析当前浏览器的内容. httpwatch-----只能分析当前浏览器内容,收费的. * 页面中的图片,js,css都是放在单独的请求中的.http是无状态的,不会记得"上个请求的***",哪怕是同一个页面的js,css也要重新发送accept-            

mysql中的锁的相关知识

数据库锁:数据库锁出现的原因是为了处理并发问题. 并发控制一般采用三种方法,分别是乐观锁和悲观锁以及时间戳. 乐观锁认为一个用户读数据的时候,别人不会去写自己所读的数据,就是不做任何操作.悲观锁就刚好相反,觉得自己读数据库的时候,别人可能刚好在写自己刚读的数据,其实就是持一种比较保守的态度,悲观锁就是在读取数据的时候,为了不让别人修改自己读取的数据,就会先对自己读取的数据加锁,只有自己把数据读完了,才允许别人修改那部分数据,或者反过来说,就是自己修改某条数据的时候,不允许别人读取该数据,只有等自

js中关于窗口的基础知识

一.   打开子窗口的方式 1. 打开一个新窗口的方法:        Window.open (“ 文件路径”,  “_blank”, “ width = 100px,  height = 100px,  toolbar = yes” )       ( 其实里面有很多属性,这里就写这些例子,注意属性的写法,双引号的位置) 2. 固定按钮不动 ( 拖动滑动条时其位置不变 )        在按钮的样式设置中添加 {  position : fixed;  left: 100px;  top: