JavaScript中的异常处理语句(Try...catch..

2021-03-22  本文已影响0人  唯吾听烟雨

从Javascript3.0中添加了异常处理机制,可以采用从java语言中移植过来的模型使用try--catch--finally语句进行异常的处理。

其中包括(try...catch...finally语句)、Error对象、使用throw语句抛出异常等

使用try...catch...finally语句抛出异常

正确代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>try_catch</title>
    </head>
    <body>
        <script>
            var str = 'i like Javascript'
            try{
                //在页面上输出字符串中的下标为5的字符。
                document.write(str.charAt(5))  //执行成功,在页面输出字符串第5位的内容,然后执行finally中的语句
            }catch(exception){
                //当有错误发生时,弹窗输出下列语句
                alert('运行时有异常发生')
                //TODO handle the exception
            }finally{
                alert('结束try...catch...finally语句')
            }
            
        </script>
    </body>
</html>

抛出异常代码:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>try_catch</title>
    </head>
    <body>
        <script>
            var str = 'i like Javascript'
            try{
                //在页面上输出字符串中的下标为5的字符。
                document.write(str.charat(5))  //字符串的函数名书写错误,发生异常,执行catch中的语句
            }catch(exception){
                //当有错误发生时,弹窗输出下列语句
                alert('运行时有异常发生')
                //TODO handle the exception
            }finally{
                alert('结束try...catch...finally语句')
            }
            
        </script>
    </body>
</html>
image.png

分析可知,当try语句块中包含的语句出现错误的时候,跳出try语句执行catch语句块中的内容,然后如果存在finally语句块,则最后执行finally语句块中的内容。

Error对象

try...catch...finally语句中的catch通常捕捉到的对象为Error对象,当运行JavaScript代码时,如果产生了错误或者异常,JavaScript就会生成一个Error对象的实例来描述错误。该实例包含了一些特定的错误信息。

Error对象有以下两个属性。

name:表示异常类型的字符串

message:实际的错误信息

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>try_catch</title>
    </head>
    <body>
        <script>
            var str = 'i like Javascript'
            try{
                //在页面上输出字符串中的下标为5的字符。
                document.write(str.charat(5))  //字符串的函数名书写错误,发生异常,执行catch中的语句
//              document.write(str.charAt(5))  //执行成功,在页面输出字符串第5位的内容,然后执行finally中的语句
            }catch(exception){
                //当有错误发生时,弹窗输出下列语句
                alert('实际的错误信息为:'+exception.message + '\n错误类型为'+exception.name)
                //TODO handle the exception
            }finally{
                alert('结束try...catch...finally语句')
            }
            
        </script>
    </body>
</html>
image.png

使用throw语句抛出异常

有些JavaScript代码并没有语法上的错误,但是又逻辑错误,对于这种错误,JavaScript不会抛出异常,这时候需要我们自己定义一个Error对象的实例,并使用throw语句来抛出异常。在程序中我们可以通过使用throw语句有目的的抛出异常,其语法格式如下。

throw new Error('somestatements')

参数说明:

throw:抛出异常关键字

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>try_catch</title>
    </head>
    <body>
        <script>
            var str = 'i like Javascript'
            try{
                var num = 1/0;
                if (num == 'Infinity'){
                    throw new Error('除数不可以为0')
                }
            }catch(exception){
                //当有错误发生时,弹窗输出下列语句
                alert('实际的错误信息为:'+exception.message + '\n错误类型为'+exception.name)
                //TODO handle the exception
            }finally{
                alert('结束try...catch...finally语句')
            }
            
        </script>
    </body>
</html>
image.png

原文链接:https://blog.csdn.net/qq_32670879/article/details/82530164

上一篇下一篇

猜你喜欢

热点阅读