• try/catch/finally 语句


    定义和用法

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

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

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

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

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

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

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

    语法

    try {
        tryCode - 尝试执行代码块
    }
    catch(err) {
        catchCode - 捕获错误的代码块
    }
    finally {
        finallyCode - 无论 try / catch 结果如何都会执行的代码块
    }
    

    参数值

    参数 描述
    tryCode 必须。检查是否有错误的代码块。
    err 必须(如果使用 catch)。指定局部变量应用的错误。该变量可以引用 Error 对象 (包含发生的错误信息,如 "'addlert' 没有定义")。如果异常通过 throw 语句创建 , 该 变量引用了为在throw语句中指定的对象 (查看 "更多实例")
    catchCode 可选。如果 try 语句发生错误执行的代码块。如果 try 语句没发生错误该代码不会执行。
    finallyCode 可选。无论 try / catch 的结果如何都会执行。

    实例

    • 该实例检测输入的值是否错误,如果错误则抛出异常。异常通过 catch 语句捕获,并输出自定义信息:
    <p>请输入 5 和 10 之间的一个数:</p>
     
    <input id="demo" type="text">
    <button type="button" onclick="myFunction()">检测输入</button>
    <p id="message"></p>
     
    <script>
    function myFunction() {
        var message, x;
        message = document.getElementById("message");
        message.innerHTML = "";
        x = document.getElementById("demo").value;
        try { 
            if(x == "")  throw "为空";
            if(isNaN(x)) throw "不是一个数字";
            if(x > 10)   throw "太大了";
            if(x < 5)    throw "太小了";
        }
        catch(err) {
            message.innerHTML = "输入的值 " + err;
        }
    }
    </script>
    
    • finally 语句无论 try 和 catch 执行结果如何都会执行:
    function myFunction() {
        var message, x;
        message = document.getElementById("message");
        message.innerHTML = "";
        x = document.getElementById("demo").value;
        try { 
            if(x == "")  throw "为空";
            if(isNaN(x)) throw "不是一个数字";
            if(x > 10)   throw "太大";
            if(x < 5)    throw "太小";
        }
        catch(err) {
            message.innerHTML = "输入的值 " + err;
        }
        finally {
            document.getElementById("demo").value = "";
        }
    }
    
    https://xiaodongxier.com
  • 相关阅读:
    ES 分词器设置+同义词设置
    ES 重写分数查询
    ReadWriteLock源码阅读
    java编程之Lambda、Stream、Optional
    AQS源码阅读
    MinIOGithub标星19K+Star,10分钟自建对象存储服务!
    使用Jenkins一键打包部署SpringBoot应用,就是这么6!
    网络与系统攻防技术|实验四 恶意代码分析实践
    React的通信方式与状态管理:Redux与Mobx
    React新旧版本生命周期对比
  • 原文地址:https://www.cnblogs.com/xiaodongxier/p/trycatchfinally-yu-ju.html
Copyright © 2020-2023  润新知