js中错误处理的相关知识
错误bug是指程序执行过程中,导致程序无法正常执行的情况。
后果:程序会强行中断退出;
错误处理:
即使程序出现错误,也保证程序不异常中断的机制。
一般的使用的代码如下:
try{//始终执行
//可能出现的代码
}catch(err){//只有发生错误时才执行;
出错时执行的错误处理代码-----通知用户,记录日志,保存进度。
err:错误对象,
}
finally{//无论是否出错,都必须执行的代码----一般用于释放资源。
但是这会导致一个问题,就是放在try catch中的代码,执行效率会降低。
解决方式:
1.尽量少的将代码放入try catch
2.如果可提前预知错误原因,可用if else语句来做判断。提前预防错误。
var num = +prompt('请输入一个数字'),
d = +prompt('输入一个小数位数');
try {
var result = num.toFixed(d);
alert(result);
}catch(err){
alert('出错了');
console.log(String(err));
}
finally {
console.log('释放资源');
num = null;d =null;
}
document.write('程序继续执行....')
改善如下:
if(d>=0&&d<=20){
var result = num.toFixed(d);
alert(result);
}else{
alert('出错了');
console.log('111111111');
}
document.write('程序继续执行....')
抛出自定义异常
throw new Error(‘错误信息’);
Js中错误对象的类型:——6种
(要经常总结错误的类型,然后在博客中写出)
SyntaxError:语法错误,程序的语法写错了
ReferenceError:引用错误,要用的变量没找到
TypeError:类型错误,错误的使用对象的类型
比如:对非数组使用[];对非函数使用();对null/undefined使用.xxx;要调用的函数,对象中没有:console.write
RangeError:范围错误,参数超范围;
比如:toFixed(d) d:0-20之间,如果写-2,就出错。
URIerror,EvelError;
js中错误处理的相关知识的更多相关文章
- js中函数的一些理论知识
函数的一些理论知识 1. 函数: 执行一个明确的动作并提供一个返回值的独立代码块.同时函数也是javascript中的一级公民(就是函数和其它变量一样). 2.函数的 ...
- 《Python网络编程》学习笔记--从例子中收获的计算机网络相关知识
从之前笔记的四个程序中(http://www.cnblogs.com/take-fetter/p/8278864.html),我们可以看出分别使用了谷歌地理编码API(对URL表示地理信息查询和如何获 ...
- js中错误处理机制
1.基本知识 1. 错误对象 Error,SyntaxError,RangeError, ReferenceError,TypeError,URIError 上面的都是构造函数: new 命令可以生成 ...
- js中闭包和对象相关知识点
学习js时候,读到几篇不错的博客.http://www.cnblogs.com/yexiaochai/p/3802681.html一,作用域 和C.C++.Java 等常见语言不同,JavaScrip ...
- C语言中预处理器的相关知识:
预处理过程时,会做以下事情或着更多: 将所有的#define删除,并且展开所有的宏定义: 处理所有条件编译指令,如#if,#ifdef等: 处理#include预编译指令,将被包含的文件插入到该预编译 ...
- centos7中的网卡名称相关知识
转载自https://www.cnblogs.com/zyd112/p/8143464.html 一致性网络设备命名(Consistent Network Device Naming) 背景介绍: 在 ...
- 学习一下 JVM (二) -- 学习一下 JVM 中对象、String 相关知识
一.JDK 8 版本下 JVM 对象的分配.布局.访问(简单了解下) 1.对象的创建过程 (1)前言 Java 是一门面向对象的编程语言,程序运行过程中在任意时刻都可能有对象被创建.开发中常用 new ...
- java中String类型的相关知识
String类方法整理说明: ·Length()用来求字符串的长度,返回值为字符串的长度: ·charAt()取该字符串某个位置的字符,从0开始,为char类型: ·getChars()将这个字符串中 ...
- 第11天:JS中变量、字符串基础知识
一.js简介用来制作页面交互效果,提高用户体验. js页面效果:轮播图.选项卡.地图.表单验证javascript是弱变量类型的语言,变量只需要用var来声明.而java要根据变 量类型来声明, in ...
随机推荐
- Python基础——使用with结构打开多个文件
考虑如下的案例: 同时打开三个文件,文件行数一样,要求实现每个文件依次读取一行,然后输出,我们先来看比较容易想到的写法: with open(filename1, 'rb') as fp1: with ...
- 模板:exlucas
求$C_n^m mod p$,其中p不是质数且不保证p能分解为几个不同质数的乘积(也就是不能用crt合并) #include<iostream> #include<cstdio> ...
- SQL2005自动备份,定期删除的维护计划及自动定期清除日志
作为一名DBA,他们最常见的日常任务是: 1)定期完成数据库的完全备份或差异备份.2)定期清理备份文件,因为存储空间有限,可能只需要保存一个时期段内的文件(比如一周内或一月内). 而如何做到这两点呢? ...
- LeetCode简单算法之删除链表中的节点 #237
闲来无事,刷刷力扣,以解心头之闷. 题目内容: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以 ...
- Simple implementation and results of genetic algorithm.
This experiment was done for the final assignment of my Professional English class. This part has be ...
- Leetcode463.Island Perimeter岛屿的周长
给定一个包含 0 和 1 的二维网格地图,其中 1 表示陆地 0 表示水域. 网格中的格子水平和垂直方向相连(对角线方向不相连).整个网格被水完全包围,但其中恰好有一个岛屿(或者说,一个或多个表示陆地 ...
- 整体二分(模板) 求区间第k小
整体二分,将询问与初值一起放入一个结构体里,然后每次二分判断询问在哪边,树状数组维护,时间复杂度O((n+Q)lognlogMAX_a[i] 代码 #include<iostream> # ...
- TZ_03_mybatis的注解开发
1.一对多的注解开发 1>需求通过查询所有的用户,并且找到该用户的所有账户(使用延迟加载模式) @Select("select * from user") //sql语句查询 ...
- USACO 2.1.4
/* ID: weitong4 LANG: C++ TASK: holstein */ #include<stdio.h> #include<string.h> #define ...
- 百度the big talk节目
主要事件 2015-03-09期:硅谷峰会:智能机器人&对话沃兹尼亚克 2015-03-02期:硅谷峰会:创新金融和智能城市 2015-02-15期:硅谷峰会:数字生物学和数字医药 2015- ...