// 在函数块的try中return,会直接成为函数的return值function test() { try { alrt(123) return 'success' } catch(err) { return 'fail' }}var result = test()console.log(result); // fail/** * 浏览器全局错误的处理 * web 浏览器,所有未捕获的错误向上冒泡,最终由window.onerror 这一最高层级的事件函数处理。 * 请注意,在web浏览器的控制台报错是无法被捕获的 */window.onerror = function (msg, url, line, col) { console.log(msg, url, line, col); return true; // 告诉浏览器错误已被处理,没必要展示给用户}/** * node.js 的全局错误处理 * process 对象会触发unCaughtException 事件。 */process.on('unCaughtException', function (err) { console.log(err);})/** * domain 运行代码以及错误捕捉 */var domain = require('domain').create();domain.on('error', function (err) { console.log(err);});/** * 该示例的基本思想是,也许会引发错误的代码可以放在这里运行 * 若函数调用的代码引发错误,将触发该domain的错误事件。通过监听error事件可以做出恰当的处理 */domain.run(function () { /* some code that might throw an error */})