`
zccst
  • 浏览: 3319858 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

再次学习try catch finally

阅读更多
作者:zccst

一、基本介绍
JavaScript的错误
1、使用Mozilla浏览器的用户可以直接在Tools下的Javascript Console进行查看浏览器找到的错误.
2、自己使用例外处理来捕获JavaScript的异常。

如下是Javascript的例外处理的一个实例。
var array = null;
try {
    document.write(array[0]);
} catch(err) {
    document.writeln("Error name: " + err.name + "");
    document.writeln("Error message: " + err.message);
}
finally{
    alert("object is null");
}


运行结果:
Error name: TypeError
Error message: Cannot read property '0' of null

同时,还弹出object is null。


程序执行过程
1. array[0]的时候由于没有创建array数组,array是个空对象,程序中调用array[0]就会产生object is null的异常
2. catch(err)语句捕获到这个异常通过err.name打印了错误类型,err.message打印了错误的详细信息。
3. finally类似于java的finally,无论有无异常都会执行。


二、异常类型
现总结Error.name的六种值对应的信息:
1. EvalError:eval()的使用与定义不一致
2. RangeError:数值越界
3. ReferenceError:非法或不能识别的引用数值
4. SyntaxError:发生语法解析错误
5. TypeError:操作数类型错误
6. URIError:URI处理函数使用不当


三、除了基本的try...catch...finally,还可以配合throw精确的捕获异常
例如:

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="message"></p>


function myFunction() {
    var message, x;
    message = document.getElementById("message");
    message.innerHTML = "";
    x = document.getElementById("demo").value;
    try { 
        x = Number(x);
        if(x == "") throw "is empty";
        if(isNaN(x)) throw "is not a number";
        if(x > 10) throw "is too high";
        if(x < 5) throw "is too low";
    }
    catch(err) {
        message.innerHTML = "Error: " + err + ".";
    }
    finally {
        document.getElementById("demo").value = "";
    }
}




完整版总结:
1,有try...catch...finally
2,可以有throw
3,可以有多个catch捕获不同的异常

try {
   try_statements
}
[catch (exception_var_1 if condition_1) { // non-standard
   catch_statements_1
}]
...
[catch (exception_var_2) {
   catch_statements_2
}]
[finally {
   finally_statements
}]
分享到:
评论

相关推荐

    try 与 catch finally关键字

    Java的 try 与 catch finally关键字的使用

    使用try-catch-finally处理异常

    你还可以在`try-catch-finally`结构内部嵌套另一个`try-catch-finally`结构,以处理更复杂的情况。这种方式使得异常处理更加灵活,能够针对不同层次的异常进行分别处理。 6. **throw和throws关键字** `throw`...

    try_catch_finally异常处理java

    通过观看这个视频,学习者可以更直观地理解`try-catch-finally`的工作机制,看到异常是如何被抛出、捕获和处理的。 总的来说,`try-catch-finally`是Java中用于异常处理的核心机制,它保证了程序的稳定性和健壮性。...

    Java try catch finally异常处理组合详解

    Java try catch finally异常处理组合详解 Java try catch finally异常处理组합是Java语言中的异常处理机制,用于捕获和处理程序中的异常。下面对try catch finally异常处理组合进行详细的介绍。 try catch组合: ...

    17.javatry…catch…finally语句.zip

    17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句.zip17.javatry…catch…finally语句...

    VB.NET Try Catch Finally用法演示源码.rar

    VB.NET 演示带Finally的Try Catch 异常处理用法演示,这个源码就是捕捉VB.NET运行错误的,结合了最常规的try catch组合,并且使用了Finally处理的情况,那么为什么要使用Finally呢?使用Finally的好处是,把资源释放...

    try-catch-finally捕获异常

    try-catch-finally捕获异常 try-catch-finally语句是Java语言中一种常用的异常处理机制,当程序在执行过程中出现异常时,可以使用try-catch-finally语句来捕获和处理异常。下面将详细介绍try-catch-finally语句的...

    java try…catch嵌套捕获异常的实例

    在这个结构中,`try`块包含可能会抛出异常的代码,每个`catch`块分别捕获不同类型的异常,`finally`块则包含需要无论发生何种情况都必须执行的代码,如资源清理。 接下来,我们来探讨嵌套的`try-catch`块。当一个`...

    try、catch、finally、return 执行顺序.doc

    try、catch、finally、return 执行顺序详细讲解 try、catch、finally、return 执行顺序是 Java 编程语言中的一种 exception 处理机制,用于处理程序中的异常情况。下面我们来详细讲解 try、catch、finally、return ...

    trycatch.zip

    本示例中的"trycatch.zip"文件内容就是展示了如何在Golang中模拟`try...catch`和`try...catch...finally`。 Golang的核心错误处理方式是通过返回错误值。通常,函数会返回一个错误值,如果在执行过程中遇到问题,就...

    C++异常处理技巧try/catch/throw/finally/exception

    通过合理地使用`try`、`catch`、`throw`和`exception`等关键字,开发者不仅能够编写更加可靠的代码,还能显著提升程序的可维护性和可读性。 #### 二、C++标准异常处理 ##### 1. 构造和析构中的异常抛出 在C++中,...

    C#中的try catch finally用法分析

    `try-catch-finally`语句块是C#中用于捕获和处理异常的关键结构。下面我们将详细解析这个语句块的用法,并通过实例来展示其功能。 1. `try`块: `try`块包含可能抛出异常的代码。当在`try`块内的代码执行过程中...

    Jungle68#-#[Java] try catch finally,try里有return,finally还执行么?1

    Condition 3: try中有异常,try-catch-finally里都没有return ,finally 之后有个returntry中有异常以后,根据

    java中try catch的用法

    // finally块总是会被执行,无论try-catch块中是否发生异常 // 通常用来释放资源等操作 } ``` #### 三、示例分析 根据题目提供的代码示例,我们来进行更深入的解析: ```java import java.io.*; public class ...

    C# 中的try catch finall 的使用方法

    在C#编程中,异常处理是程序健壮性的重要组成部分,`try-catch-finally`语句块就是C#提供的一种处理运行时错误的方式。它允许程序员在代码可能抛出异常的地方进行捕获并处理,确保即使在异常情况下,程序也能以一种...

    try-catch用法

    3. **资源清理**:如果 `try` 块中使用了需要关闭的资源(如文件流),应使用 `finally` 块确保资源得到正确的释放。 4. **异常重新抛出**:在某些情况下,可能需要在捕获异常后进行一些处理,然后再重新抛出异常。...

    try-catch的用法和含义

    ### try-catch 的用法与含义详解 在编程过程中,异常处理是确保程序稳定性和健壮性的关键环节之一。`try-catch` 结构作为异常处理的核心机制,在各种编程语言中广泛采用,如 Java、C# 和 JavaScript 等。本文将深入...

    java try…catch捕获异常的实例

    即使在`try`或`catch`块中有`return`语句,`finally`块中的代码也会被执行: ```java try { // 代码 } catch (ExceptionType1 e1) { // 处理 } catch (ExceptionType2 e2) { // 处理 } finally { // 清理资源,...

    再谈异常处理try catch finally

    本文将深入探讨`try-catch-finally`语句块的使用,并通过实例分析如何优化异常处理,遵循最佳实践。 首先,让我们回顾一下`try-catch-finally`的基本用法。在C#中,`try`块用于包含可能会抛出异常的代码,`catch`块...

Global site tag (gtag.js) - Google Analytics