内容简介:翻译自:https://stackoverflow.com/questions/41414830/why-is-my-http-librarys-error-handler-catching-all-runtime-errors-in-the-app
我正在使用React Native 0.39构建一个原型应用程序,它从远程源请求一些数据.要发出请求,我使用
Axios.
这个电话看起来很简单.在名为TownsList.js的组件中,我这样做
class TownsList extends Component { constructor(props) { super(props); this.state = {towns: []}; } componentDidMount() { let url = "(SOME URL HERE)"; axios.get(url) .then(function(response) { // Do stuff witt the successful result }) .catch(function (error) { Alert.alert( 'Download failed', 'Unable to download data from '+url+"\nError:"+error, [{text: 'OK'}]) }); ...
现在奇怪的是,每当我的代码中有一些其他运行时错误//成功结果块的东西 – 例如对某个常量或变量的错误引用 – 该错误将由Axios的错误处理程序处理,以及:
这感觉不对.我究竟做错了什么?我应该在我的应用程序中的其他地方设置“通用”错误处理来捕获这些东西吗?或者这是预期的行为?
如果在您标记为的块中抛出错误,这是自然行为
// Do stuff witt the successful result
如果您不想要这种行为,请考虑以这种方式编写它:
axios.get(url) .then(function(response) { // Do stuff with the successful result }, function (error) { // any error from the get() will show up here Alert.alert( 'Download failed', 'Unable to download data from '+url+"\nError:"+error, [{text: 'OK'}]) });) }) .catch(function(error) { // any error from "doing stuff" will show up here console.error(error); })
.then()方法允许两个函数,一个用于成功,另一个用于失败 – 原始promise的失败,而不是成功函数.
由于您自己的代码本身由于某种原因而失败,您当然不希望沉默.
翻译自:https://stackoverflow.com/questions/41414830/why-is-my-http-librarys-error-handler-catching-all-runtime-errors-in-the-app
以上所述就是小编给大家介绍的《reactjs – 为什么我的http库的错误处理程序在应用程序中捕获* all * runtime错误?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 应用 AddressSanitizer 发现程序内存错误
- 可以让程序告诉我详细的页面错误和数据库连接错误吗?
- Delphi:现场应用程序错误记录
- 在开发 Web 程序时常遇到的错误
- 前端错误收集(Vue.js、微信小程序)
- GO常见的错误99%程序员会遇到
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。