ionic 调用restful API services时全局错误处理的实现 或自定义错误处理的实现

往往我们的ionic程序需要调用API Service. 比如天气,地图等等。当这些API Service 不稳定或者不可访问时,我们可以通过在注册一个自定义的ErrorHandler, 来处理此类错误。

1.   将自定义错误处理类作为provider,  也就是Service.   在终端使用命令: ionic g provider GlobalErrorHandler .  ionic generate 命令行定义可以参考此处

2.     实现GlobalErrorHandler, 完整代码如下。

import { ErrorHandler, Injectable } from ‘@angular/core‘;

import { AlertController } from ‘ionic-angular‘;

@Injectable()

export class GlobalErrorHandler extends ErrorHandler {

constructor(public alertCtrl: AlertController) {

super();

}

handleError(error: any): void {

super.handleError(error);

// IMPORTANT: Rethrow the error otherwise it gets swallowed

if (error) {

if (error.status === 0 && error.name === ‘HttpErrorResponse‘ && error.statusText === ‘Unknown Error‘) {

this.showAlert(‘ 后台服务遇到了问题,目前正在修复中,请稍后访问,给您带来不便,深表歉意。‘);

//It‘s better to add this to log file.

}

}

}

showAlert(subTitleText) {

let alert = this.alertCtrl.create({

title: ‘发生错误!‘,

subTitle: subTitleText,

buttons: [‘确定‘]

});

alert.present();

}

}

3.   在 \src\app\app.module.ts 中注册 GlobalErrorHandler  . 以下是代码片段, 请关注粗体部分。

import { GlobalErrorHandler } from ‘../providers/global-error-handler/global-error-handler‘;

@NgModule({

declarations: [...],

imports: [...],

bootstrap: [IonicApp],

entryComponents: [

MyApp

],

providers: [

{provide: ErrorHandler, useClass: GlobalErrorHandler},

//  IMP. GlobalErrorHandler should be here, otherwise it would not be triggered.

GlobalErrorHandler

]

})

export class AppModule {}

这样的话,我们就在ionic程序中引入了全局错误处理。 一旦第三方的services 或者我们自己的service 发生错误不可访问时, 页面将会有Alert弹出。 如下图所示。

原文地址:https://www.cnblogs.com/caiyaming/p/9219126.html

时间: 2024-10-06 13:29:29

ionic 调用restful API services时全局错误处理的实现 或自定义错误处理的实现的相关文章

C#调用RESTful API

如今非常多的网络服务都用RESTful API来实现. 比方百度的搜索推广API介绍使用Rest原因:REST+JSON风格的API相比SOAP+XML,优点是:调用更加灵活.也更easy扩展:JSON格式传输信息比XML降低约30%的数据量,效率更高.因此建议开发人员使用REST风格的API. 查找了非常多调用Rest API网络碎片资料,总是无法理解或者生效. 以下摘一点认为有效果的作为參考吧. http://www.makeyuan.com/2014/02/27/1117.html 利用该

phonegap+cordova+ionic调用原生API

上一篇博客讲了phonegap+cordova+ionic的环境搭建,今天再来分享一篇cordova调用原生API的文章.从技术角度上来讲,这并不是很难,只是有些细节要是没有注意,或者某些步骤不知道的,那么在坑里一时半会很难爬出来.所以这两篇博客旨在帮助小伙伴们节省更多的时间去做其他有意义的事情. 1.新建工程 新建工程和添加平台支持的操作已经在上一篇博客中讲到了, 这里不再赘述. 2.Bower的使用 首先确认是否安装了bower,如果没有安装,打开cmd命名,输入npm install -g

关于WP8.1开发中,调用网络API接口时JSON无法反序列化的解决方法

分享一个自动生成json的C#对象的方法网址: http://tools.wx6.org/json2csharp/ 复制后就在项目中新建一个类,类名可以按照自动生成的Root,也可以自定义,自定义的话,别忘了修改复制的类名 如自定义类名为C,则把Root改成C 关于复杂的嵌套JSON,要记住:集合中不要放集合,要构建对象来放集合,这样才能在绑定数据时调用 反序列化推荐用json.net这个开源库,引用时注意要用WinRt中的json.dll 然后用Root r=JsonConvert.Deser

delphi7的新生,参与分布式应用开发,调用RESTful API,Json的应用

前言: 1.公司delphi7开发的传统软件还活得好好的,但是大家都知道delphi早已经日落西山了,现在成了后进.追随者.细细算了已经6.7不用了.新的delphixe7呢,没有时间成本去适应和研究. 由于大量使用了第3方的组件和控件,想升级估计是吃力不讨好的事情... 2.保留原有代码,开发新功能可调用远程主机(云主机)的REST ful风格的api,使用Json交换数据.这样就赶上了新潮流,复活了. 由于网上搜索了很多次,发现符合需求的文章很少,这里记录下来,授人以鱼吧. delphi7使

RESTful API 编写指南

基于一些不错的RESTful开发组件,可以快速的开发出不错的RESTful API,但如果不了解开发规范的.健壮的RESTful API的基本面,即便优秀的RESTful开发组件摆在面前,也无法很好的理解和使用.下文Gevin结合自己的实践经验,整理了从零开始开发RESTful API的核心要点,完善的RESTful开发组件基本都会包含全部或大部分要点,对于支持不够到位的要点,我们也可以自己写代码实现. 1. Request 和 Response RESTful API的开发和使用,无非是客户端

【Tech】CAS RESTful API使用笔记

在被maven,cas,tomcat各种贱人就是矫情的虐了好几天之后,终于跑通了demo,哈哈哈哈哈哈哈~ 在这里详细记录一下,给和我一样连maven都不会的小白一点福利,同时欢迎大神指正. 首先上最好的参考资料:http://stackoverflow.com/questions/22625368/working-java-rest-client-example-to-access-cas-rest-api 这个大神讲的非常清楚了,只要跟着他的步骤一定是可以的,但是...大神一句话,通常我要花

SpringMVC Restful api接口实现

[前言] 面向资源的 Restful 风格的 api 接口本着简洁,资源,便于扩展,便于理解等等各项优势,在如今的系统服务中越来越受欢迎. .net平台有WebAPi项目是专门用来实现Restful api的,其良好的系统封装,简洁优雅的代码实现,深受.net平台开发人员所青睐,在后台服务api接口中,已经逐步取代了辉煌一时MVC Controller,更准确地说,合适的项目使用更加合适的工具,开发效率将会更加高效. python平台有tornado框架,也是原生支持了Restful api,在

asp.net自定义错误页面

ASP.NET 提供三种用于在出现错误时捕获和响应错误的主要方法:Page_Error 事件.Application_Error 事件以及应用程序配置文件 (Web.config). 如果您不调用 Server.ClearError 或者捕获 Page_Error 或 Application_Error 事件中的错误,则将根据 Web.config 文件的 <customErrors> 部分中的设置处理错误.在 <customErrors> 部分,可将重定向页指定为默认的错误页 (

PHP 错误与异常 笔记与总结(8)自定义错误处理函数 set_error_handler()

通过 Set_error_handler() 函数设置用户自定义的错误处理函数. 步骤: ① 创建错误处理函数 ② 设置不同级别调用函数 ③ Set_error_handler() 函数制定接管错误处理—— 如果使用了该函数,程序会绕过标准的 PHP 错误处理. 摘自:php.net mixed set_error_handler ( callable $error_handler [, int $error_types = E_ALL | E_STRICT ] ) 设置一个用户的函数(erro