• try catch finally的理解


    定义以及用法:

    try/catch/finally 语句用于处理代码中可能出现的错误信息。

    错误可能是语法错误,通常是程序员造成的编码错误或错别字。也可能是拼写错误或语言中缺少的功能(可能由于浏览器差异)。

    try语句允许我们定义在执行时进行错误测试的代码块。

    catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。

    finally 语句在 try 和 catch 之后无论有无异常都会执行。

    注意: catch 和 finally 语句都是可选的,但你在使用 try 语句时必须至少使用一个。

    提示: 当错误发生时, JavaScript 会停止执行,并生成一个错误信息。使用 throw 语句 来创建自定义消息(抛出异常)。如果你将 throwtrycatch一起使用,就可以控制程序输出的错误信息。

    总结:

    try { //执行的代码,其中可能有异常。一旦发现异常,则立即跳到catch执行。否则不会执行catch里面的内容 } 

    catch { //除非try里面执行代码发生了异常,否则这里的代码不会执行 } 

    finally { //不管什么情况都会执行,包括try catch 里面用了return ,可以理解为只要执行了try或者catch,就一定会执行 finally } 

    案例:

    	(function (){
    		try{
    			throw new Error();
    		}catch(x){
    			var x = 1, y = 2;
    			console.log(x); // 1
    		}
    		console.log(x); //undefined
    		console.log(y); //2
    	}());
    

    下面说一下js错误Error对象的详解:

     一·概念

    error,指程序中的非正常运行状态,在其他编程语言中称为“异常”或“错误”。解释器会为每个错误情形创建并抛出一个Error对象,其中包含错误的描述信息。

    ECMAScript定义了六种类型的错误。除此之外,还可以使用Error构造方法创建自定义的Error对象,并使用throw语句抛出该对象。

    六种错误:

    • ReferenceError:找不到对象时
    • TypeError:错误的使用了类型或对象的方法时
    • RangeError:使用内置对象的方法时,参数超范围
    • SyntaxError:语法写错了
    • EvalError:错误的使用了Eval   
    • URIError:URI错误

    二·错误处理

    即使程序发生错误,也保证不异常中断的机制。

    try{
        可能发生错误的代码
    }catch(err){
        只有发生错误时才执行的代码
    }finally{
        无论是否出错,肯定都要执行的代码
    }

    使用要点:

    • 使用try包裹的代码,即使不出错,效率也比不用try包裹的代码低;
    • 在try中,尽量少的包含可能出错的代码;
    • 无法提前预知错误类型的错误,必须用try catch捕获;
    • finally可以省略;

    三·抛出自定义错误

    何时:如果函数的定义者,需要告知调用者使用过程中的错误;

    如何:throw new Error("提示文字");

    // 甲:定义函数的人
    function round(num, d){
        if(!isNaN(num) && !isNaN(d)){
            num *= Math.pow(10, d);
            return num;
        }else{
            // 抛出自定义错误
            throw new Error("参数必须是数字");  
        }
    }
    
    // 乙:调用函数的人
    var d = parseInt(prompt('请输入数字'));
    try{
        alert(round(123.456, d));
    }catch(err){
        alert(err.message);  // 接住抛出的自定义错误
    }
  • 相关阅读:
    js数组基础
    JavaScript原型链
    js之promise讲解
    ajax登录验证-js
    js事件委托
    js中的回调函数的理解和使用方法
    js闭包的理解
    JavaScript是如何实现继承的(六种方式)
    js创建对象的几种常用方式小结
    canvas绘图详解-08-样式填充
  • 原文地址:https://www.cnblogs.com/8023-CHD/p/10930813.html
Copyright © 2020-2023  润新知