javascript - 尝试可以正常工作,但Catch在Javascript函数中不起作用,如下所述

标签 javascript error-handling try-catch

在下面的功能中,Catch不起作用。无法获取错误消息。

function reverseString(s) {
  var ary = s.split("");
  ary.reverse();
  try {
    console.log(ary.join(""));
  } catch (err) {
    console.log(err);
  }
}
reverseString(1234);

最佳答案

在开始进行计算之前,请确保sstring

s转换为string:

function reverseString(s) {
  var ary = String(s).split("");
  ary.reverse();
  try {
    console.log(ary.join(""));
  } catch (err) {
    console.log(err);
  }
}
reverseString(1234);


如果s不是字符串,则抛出一个自定义错误:

function reverseString(s) {
  if (typeof s !== "string") throw Error("s is not a string");
  // or
  // if (typeof s.split !== "function") throw Error("split is not supported");
  var ary = s.split("");
  ary.reverse();
  try {
    console.log(ary.join(""));
  } catch (err) {
    console.log(err);
  }
}
try {
  reverseString(1234);
} catch (err) {
  console.log("Error: " + (err && err.message));
}
try {
  reverseString("1234");
} catch (err) {
  console.log("Error: " + (err && err.message));
}

关于javascript - 尝试可以正常工作,但Catch在Javascript函数中不起作用,如下所述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56543853/

相关文章:

javascript - 从脚本外部调用内部Cesium函数

javascript - 带有 Socket.io 的 Node.js - 长轮询失败并抛出 "code":1 ,"message" :"Session ID unknown" response

javascript - Firebase 和 JavaScript - 如何更新具有特定 ID 值的对象?

javascript - 使用 Jasmine 测试的 ngTable 中的排序功能

java - Eclipse Stacktrace System.err 问题

multithreading - Perl 线程 - 捕获退出

sql-server - 如何避免存储过程中出现T-SQL错误?

python:如何起床直到我的代码出现最后一个错误

python - python中如何处理一些异常

c# - 如何使用C#在IIS Express中创建虚拟目录