【问题标题】:Why does javascript always fail silently?为什么javascript总是默默地失败?
【发布时间】:2015-10-09 08:18:29
【问题描述】:

我正在开发一个 React 应用,我正在使用这个堆栈:

webpack
babel
altjs
react

我正在为浏览器开发。 问题是大多数错误都会默默地失败!例如,我错误地导入了一个没有公开正确功能的资源,但是 javascript 在不让我知道任何东西的情况下就失败了!

有没有办法改进浏览器传达错误的方式?

编辑: 对不起,但我认为这是理所当然的!我正在使用控制台,但这里打印的东西很少! 这是一个例子:

'use strict'

import React from 'react';
import {Route, DefaultRoute, NotFoundRoute} from 'react-router';

export default (
    <Route path="/" handler={AppCointainer}>
      <DefaultRoute handler={Login}/>
      <Route path="login" name="login" handler={Login}/>
      <Route path="signup" name="signup" handler={SignUp}/>
      <Route path="/reset-password" handler={ResetPassword}/>
    </Route>
  );

在这里,我显然错过了导入诸如登录、注册 ecc 之类的组件...但它在浏览器中并没有告诉我任何信息!不是一般性错误!

【问题讨论】:

  • 您会在浏览器控制台中看到错误。你有什么期待?
  • @ciaoben 但这里打印的东西很少! – 再次,您希望在那里看到什么?
  • @IonicăBizău 再次编辑抱歉
  • @ciaoben 嗯,很奇怪。这看起来更像是一个错误。你可以open an issue here

标签: javascript google-chrome developer-tools


【解决方案1】:

您会在浏览器控制台中看到错误。但是,如果您想获得出现问题的视觉反馈,您可以使用 onerror 处理程序:

window.onerror = function (e) {
    // run your custom stuff
    alert("Something went wrong!\n" + e);
};

setTimeout(function () {
  undefined.foo; // make an error appear
}, 100);

【讨论】:

  • 在您无法访问控制台的设备(例如 iPad)上可能很有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多