zoukankan      html  css  js  c++  java
  • 错误类型

    JavaScript有一个标准的Error对象表示错误,还有从Error派生的TypeErrorReferenceError等错误对象。我们在处理错误时,可以通过catch(e)捕获的变量e访问错误对象:

     1 try {
     2     ...
     3 } catch (e) {
     4     if (e instanceof TypeError) {
     5         alert('Type error!');
     6     } else if (e instanceof Error) {
     7         alert(e.message);
     8     } else {
     9         alert('Error: ' + e);
    10     }
    11 }

    使用变量e是一个习惯用法,也可以以其他变量名命名,如catch(ex)

    抛出错误

    程序也可以主动抛出一个错误,让执行流程直接跳转到catch块。抛出错误使用throw语句。

    例如,下面的代码让用户输入一个数字,程序接收到的实际上是一个字符串,然后用parseInt()转换为整数。当用户输入不合法的时候,我们就抛出错误:

     1 var r, n, s;
     2 try {
     3     s = prompt('请输入一个数字');
     4     n = parseInt(s);
     5     if (isNaN(n)) {
     6         throw new Error('输入错误');
     7     }
     8     // 计算平方:
     9     r = n * n;
    10     console.log(n + ' * ' + n + ' = ' + r);
    11 } catch (e) {
    12     console.log('出错了:' + e);
    13 }

    实际上,JavaScript允许抛出任意对象,包括数字、字符串。但是,最好还是抛出一个Error对象。

    最后,当我们用catch捕获错误时,一定要编写错误处理语句:

    var n = 0, s;
    try {
        n = s.length;
    } catch (e) {
        console.log(e);
    }
    console.log(n);

    哪怕仅仅把错误打印出来,也不要什么也不干:

    var n = 0, s;
    try {
        n = s.length;
    } catch (e) {
    }
    console.log(n);
    

    因为catch到错误却什么都不执行,就不知道程序执行过程中到底有没有发生错误。

  • 相关阅读:
    lucene建立索引时候的用到的一些文档和目录操作
    MYSQL Cast函数 类型转换
    windows和linux下执行java程序+获取本机IP
    apache lucene 的核心类
    apache lucene 一个最简单的实例
    lucene 索引非txt文档 (pdf word rtf html xml)
    MyISAM & InnoDB
    软件开发者面试百问
    比较lucene各种英文分析器Analyzer
    浅谈Base64编码
  • 原文地址:https://www.cnblogs.com/yangguoe/p/8249364.html
Copyright © 2011-2022 走看看