如何使用常见的 try-catch 来处理 Javascript 中的每个给定函数?

ANZ*_*NZR 4 javascript methods metaprogramming function try-catch

这些是我的一些函数,我需要编写一个通用函数来查看函数运行是否没有错误。我尝试使用 try/catch 方法。但我只能对每个函数单独执行此操作。

function fisrt(){
 console.log("First");
};

function second(){
 console.log("Second");
}

function third(){
 console.log("Third");
}
fisrt();
second();
third();
Run Code Online (Sandbox Code Playgroud)

我在 try-catch 中编写每个函数。有没有一种方法可以为所有函数编写一个通用的 try-catch。

try {
     (function first() {
       console.log("ffgdf")
    })();

 }catch (e) {
      console.log( "won't work" );
    }
Run Code Online (Sandbox Code Playgroud)

Ste*_*han 6

您可以定义一个包装函数,它将所需的函数作为参数,并将其包装在 try catch 中。

function wrapper(fn) {
    try {
        fn();
    } catch(error) {
        console.error(error);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后给出你原来的函数:

function first() {
    console.log("First");
};

function second() {
    console.log("Second");
}

function third() {
    console.log("Third");
}
Run Code Online (Sandbox Code Playgroud)

您可以使用包装函数来测试每一项:

wrapper(first);
wrapper(second);
wrapper(third);
Run Code Online (Sandbox Code Playgroud)

无需为每个函数添加 try catch。