假设我们有一个函数可以多次调用JSON.parse(someText)
。但是,someText
不一定经过错误检查,例如,"foo"
可以传递到JSON.parse中。输入非JSON值后,我想返回一个空对象{}
很显然,我们可以使用try-catch
来轻松处理此问题。但是,try-catch
丑陋而不优雅-是否有一种快速,简单的单一方法来执行类似操作?
答案 0 :(得分:0)
(这将使将来的读者不明白为什么这是错误的)您应该捕获并处理异常,而不是忽略它们。开发这些功能的人员依赖于您捕获异常,从而能够对异常做出适当的反应。优雅与美丽在情人眼中,与任何艺术品一样,您也可以写作,以便其他人都能欣赏。每个人都会得到try...catch
个区块。
无法在1行代码中完成。但是,您可以做一些讨厌的事情来绕过异常处理。
方法1
手动处理全局onError方法。
function handleErr(msg, url, line_no){
var errorMsg = "Error: " + msg + "\n";
errorMsg += "URL: " + url + "\n";
errorMsg += "Line: " + line_no + "\n\n";
console.log(errorMsg);
return true;
}
// Set the global onerror;
onerror = handleErr;
现在,您可以处理(即忽略)此函数中的错误。您可以使用位代码打开和关闭它。或者,您可以去吃香蕉,然后在处理程序中执行return true;
。
方法2
使用setTimeout,线程将因异常而死亡,但您的代码将继续执行,这也是美观的ES6单行代码。
setTimeout(() => JSON.parse("not json: fghfghg"), 0)
console.log("Code still running")
方法3
答案 1 :(得分:0)
尽管先前有关于异常处理的评论,但是您可以应用单行代码来实现您的目标。唯一的问题是数字和数字字符串。这些将被解析并以数字形式返回
tcp://YOURHOST:PORT