`
hackbomb
  • 浏览: 215198 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Javascript错误处理之抛出自定义错误

阅读更多

//抛出自定义异常   
function divide1 (iNum1, iNum2) {   
    try{   
        if(arguments.length != 2) {   
            throw new Error("divide() requires two arguments.");   
        } else if (typeof(iNum1) != "number" || typeof(iNum2) != "number") {   
            throw new Error("divide() requires two numbers for arguments.");   
        }   
        return iNum1.valueOf() / iNum2.valueOf();   
    } catch (e) {   
        alert(e.message);   
        return -1;   
    }   
}   
  
//模拟assert   
function assert(bCondition, sErrorMessage){   
    if(bCondition) {   
        throw new Error(sErrorMessage);   
    }   
}   
  
function divide2 (iNum1, iNum2) {   
    try{   
        assert(arguments.length != 2, "divide() requires two arguments.");   
        assert(typeof(iNum1) != "number" || typeof(iNum2) != "number", "divide() requires two numbers for arguments.");   
        assert(iNum2.valueOf() == 0, "divisor can not be zero.");   
        return iNum1.valueOf() / iNum2.valueOf();   
    } catch (e) {   
        alert(e.message);   
        return -1;   
    }    
}   
window.onload=function(){   
    divide1("a","a");   
    divide2(2,0);   

//抛出自定义异常
function divide1 (iNum1, iNum2) {
    try{
        if(arguments.length != 2) {
            throw new Error("divide() requires two arguments.");
        } else if (typeof(iNum1) != "number" || typeof(iNum2) != "number") {
            throw new Error("divide() requires two numbers for arguments.");
        }
        return iNum1.valueOf() / iNum2.valueOf();
    } catch (e) {
        alert(e.message);
        return -1;
    }
}

//模拟assert
function assert(bCondition, sErrorMessage){
    if(bCondition) {
        throw new Error(sErrorMessage);
    }
}

function divide2 (iNum1, iNum2) {
    try{
        assert(arguments.length != 2, "divide() requires two arguments.");
        assert(typeof(iNum1) != "number" || typeof(iNum2) != "number", "divide() requires two numbers for arguments.");
        assert(iNum2.valueOf() == 0, "divisor can not be zero.");
        return iNum1.valueOf() / iNum2.valueOf();
    } catch (e) {
        alert(e.message);
        return -1;
    }
}
window.onload=function(){
    divide1("a","a");
    divide2(2,0);
}

分享到:
评论

相关推荐

    JavaScript错误处理

    JavaScript错误处理是编程过程中不可避免的部分,它涉及到识别、捕获和响应代码运行时可能出现的问题。本文将详细探讨JavaScript中的错误分类、处理机制以及如何有效地管理错误。 首先,我们来了解JavaScript中的...

    错误处理的艺术:精通JavaScript中的异常管理

    除了捕获内置的错误类型之外,JavaScript还允许开发者抛出自定义错误,以便提供更具体的信息。这可以通过`throw`语句实现,下面是一个简单的示例: ```javascript function divide(a, b) { if (b === 0) { throw ...

    深入分析javascript中的错误处理机制

    为了确保程序的健壮性,JavaScript提供了一套完整的错误处理机制,使得开发者能够捕获、处理和恢复从语法错误到逻辑错误的各种问题。本文将深入探讨JavaScript中的错误处理机制,主要包括错误对象、错误类型以及如何...

    JavaScript可扩展的自定义错误可以接收消息或Error对象

    总结来说,JavaScript通过`Error`类提供了基本的错误处理能力,而通过继承和扩展这个基类,我们可以创建自定义错误类型,它们不仅可以接收消息,还能接收其他Error对象,从而提供更丰富的错误信息和更精确的错误分类...

    WEB开发 之 JavaScript 错误 - Throw、Try 和 Catch.docx

    JavaScript错误处理是WEB开发中的一个重要方面。在JavaScript中,错误可能来自语法错误、拼写错误、服务器或用户的错误输出等多种原因。因此,了解如何正确地处理错误是非常重要的。 在JavaScript中,有三种主要的...

    使用自定义异常对象处理JavaScript错误消息

    JavaScript通过`try...catch`语句来捕获和处理可能抛出的错误。当`try`块中的代码出现错误时,控制权会立即转移到相应的`catch`块。在`catch`块中,我们可以编写代码来处理这些错误,比如显示一个自定义的错误消息。...

    深化分析javascript中的错误处理机制_.docx

    本文将深入探讨JavaScript中的错误处理机制,主要包括错误对象、错误的捕获与抛出、错误类型以及相应的处理策略。 首先,`Error`对象是JavaScript的内置对象,它用于存储有关错误的信息。当代码中出现错误时,...

    全面了解javascript中的错误处理机制_.docx

    JavaScript中的错误处理机制是编程过程中不可或缺的一部分,它确保了程序在遇到问题时能够优雅地处理并提供反馈。错误处理通常涉及到捕获、处理和记录错误,以防止程序意外终止,同时提高用户体验。 首先,我们来看...

    JavaScript错误处理操作实例详解

    JavaScript错误处理是编程中至关重要的一个环节,它确保了程序在遇到问题时能够优雅地运行,而不是突然崩溃。本文将详细介绍JavaScript中常见的错误处理机制、错误类型及其处理方法。 首先,我们关注的是`try-catch...

    简介JavaScript错误处理机制

    自定义错误也是JavaScript错误处理机制的一部分,开发者可以通过继承Error类来创建自己的错误类型。通过创建自定义的错误类型,我们可以更精确地控制错误抛出和捕获的行为,更好地管理程序中可能出现的各种异常情况...

    详解JavaScript中的异常处理方法

    在自定义的错误处理逻辑中,可以通过throw语句抛出更具体的信息,让异常处理流程更加清晰和高效。 结合try...catch结构和throw语句,开发者可以实现错误的捕获、处理和记录,使得JavaScript脚本在运行时更加稳定和...

    JavaScript高级程序设计 错误处理与调试学习笔记

    在进行JavaScript编程时,错误处理和调试是不可避免的两个重要环节。良好的错误处理机制能够帮助开发者快速定位和解决问题,而有效的调试技巧则能够帮助开发者理解和优化代码逻辑。接下来,我们将详细介绍如何在...

    errorsjs:包含自定义 JavaScript 错误对象的模块

    "errorsjs"是一个专门用于创建和管理自定义JavaScript错误对象的模块。这个模块使得开发者能够更加方便、结构化地处理程序中出现的各种异常情况,提升代码的可读性和维护性。下面将详细探讨自定义JavaScript错误对象...

    浅谈javascript错误处理

    例如,如果你发现用户输入无效,可以使用`throw`抛出一个自定义错误: ```javascript if (typeof userInput !== 'string') { throw new Error('Invalid input type. Expected string.'); } ``` `try`和`catch`...

    简化错误处理的Asyncawait封装

    在实际应用中,我们还可以根据需要扩展`handleAsync`函数,比如添加超时机制,或者提供自定义的错误处理策略。这样,即使面对复杂的异步流程,也能保持代码的整洁和可维护性。 在提供的文件"await-to-js-master"中...

    javascript Error 对象 错误处理

    ### JavaScript Error 对象与错误处理 #### Error 对象概述 在JavaScript编程中,错误处理是一项基本而重要的功能。`Error`对象是所有错误的基础类,它用于存储有关错误的信息,并且可以通过构造函数来创建。`...

    【JavaScript源代码】React 错误边界组件的处理.docx

    在React开发过程中,未被捕获的JavaScript错误可能会导致整个应用程序崩溃以及整个组件树的卸载。为了应对这一问题,React 16引入了错误边界的概念,这是一种特殊类型的组件,能够捕获子组件树中的错误并展示备用UI...

    全面了解javascript中的错误处理机制

    本文将深入探讨JavaScript中的错误处理机制,包括错误对象的组成、不同类型的错误以及如何使用try-catch语句和throw语句来捕获和抛出错误。 首先,我们需要了解什么是错误对象。错误对象是JavaScript中的一个原生...

    javascript in action:javascript 实战源码

    8. **错误处理**:学习如何使用try...catch结构捕获和处理运行时错误,以及如何抛出自定义错误。 9. **模块化**:了解CommonJS(Node.js中的模块系统)、AMD(异步模块定义,如RequireJS)和ES6的import/export模块...

Global site tag (gtag.js) - Google Analytics