JavaScript 如何从外部库捕获错误并在JavaScript中将其存储在字符串中

JavaScript 如何从外部库捕获错误并在JavaScript中将其存储在字符串中

在我们的代码中使用外部库时,我们可能会遇到错误。捕获这些错误并妥善处理它们非常重要。在某些情况下,我们可能希望将错误消息存储在字符串中,以便进行进一步处理或向用户显示。

在本文中,我们将学习如何使用各种方法从外部库捕获错误并将其存储在字符串中。将错误消息存储在字符串中提供了一种方便处理和报告错误的方式。通过将错误消息存储在字符串中,您可以执行各种操作,例如记录它,向用户显示它或将其发送到日志记录服务。

让我们考虑一个示例,我们在使用MathJS库进行数学计算。假设我们想要计算负数的平方根。在这种情况下,MathJS会抛出一个错误,我们需要捕获该错误并将错误消息存储在字符串中。

示例:

Javascript

const math = require('mathjs'); 
let num = -9; 
let result; 
try { 
    result = math.sqrt(num); 
} catch (error) { 
    console.log(error); 
}

输出(错误):

TypeError: Cannot convert undefined or null to object
at f (https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.4.4/math.js:3565:53)
at l._compile (https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.4.4/math.js:11054:25)
at l.compile (https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.4.4/math.js:10950:10)
at r.parse (https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.4.4/math.js:7647:18)
at u.parse (https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.4.4/math.js:8763:22)
at l.parse (https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.4.4/math.js:11026:20)
at Function.parse (https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.4.4/math.js:10937:12)
at t.parse (https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.4.4/math.js:23821:14)
at Object.parse (https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.4.4/math.js:23905:14)
at Object.sqrt (https://cdnjs.cloudflare.com/ajax/libs/mathjs/9.4.4/math.js:3055:22) 

方法 1: 要捕获错误并将其存储在字符串中,我们可以使用 try-catch 块和 stack 属性,该属性将错误消息转换为字符串。

示例: 在下面的代码中,我们添加了一个名为 errorMessage 的变量,并将其赋值为计算平方根时出错时的错误消息。然后,我们可以使用此字符串向用户显示错误消息,或者将其记录下来以进行进一步处理。

JavaScript

const fs = require('fs'); 
  
try { 
    const data = fs.readFileSync('path/to/file.txt'); 
    console.log('Data:', data); 
} catch (error) { 
    const errorMessage = error.stack.toString(); 
  
    console.error('Error:', errorMessage); 
}

输出:

Error: Error: ENOENT: no such file or directory, open 'path/to/file.txt'

方法2: 要捕捉错误并将其存储在字符串中,我们可以使用try-catch块和util库的inspect()方法将错误消息转换为字符串。

示例: 此代码示例演示了如何捕捉来自外部库(在本例中是Node.js中的fs模块)的错误并使用util库将其存储在字符串中。

Javascript

const fs = require('fs'); 
const util = require("util") 
  
try { 
    const data = fs.readFileSync('path/to/file1.txt'); 
} catch (error) { 
    const errorMessage = util.inspect(error); 
    console.error(errorMessage); 
}

输出:

Error: ENOENT: no such file or directory, open 'path/to/file1.txt' 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程