Bri*_*and 16

角度没有魔法.如果存在未被捕获的错误,它会向上传播范围直到它到达窗口,然后发出错误事件 - 与没有反应的错误相同的行为.

var App = React.createClass({
  render: function(){
    throw new Error("rawr!");
    return <div>Hello, world!</div>
  }
});

window.addEventListener('error', function(e){
  // e instanceof ErrorEvent
  console.error('caught the error: ' + e.message);
});
Run Code Online (Sandbox Code Playgroud)

chrome控制台显示错误

如果您查看跨浏览器支持,请更新此答案或添加引文注释.

您可以将它发送到任何您喜欢的地方,而不是将其记录到控制台(默认情况下已经发生).

与其他一些框架不同,未被捕获的错误始终是代码中的错误.它永远不会发生.

您可能还需要通过向.catch(reportError)链的末尾显式添加a 并检查它是TypeError还是ReferenceError来对promise进行一些特殊处理.

  • +1"for"与其他一些框架不同,未被捕获的错误始终是代码中的错误.它永远不会发生." :) (5认同)