SlideShare une entreprise Scribd logo
1  sur  11
Decorator &
Interceptor
@cbalit
P.
LE CONTEXTE
SOURCES D’ERREURS
Application Serveur
runtime
http
GLOBALERRORHANDLER
Un service GlobalErrorHandler pour centraliser la stratégie
● message dans l’application
● trace local
● envoi au serveur ...
.factory('GlobalErrorHandler', function ($window) {
var service = {
error: function (error) {
},
ajaxError: function (rejection) {.
},
};
return service;
});
POUR LES APPELS HTTP
● Création d’un service Interceptor: objet implémentant 4 méthodes:
○ request
○ requestError
○ response
○ responseError
● Enregistrer notre interceptor dans le $httpProvider.interceptors
.factory('errorHttpInterceptor', function ($q, GlobalErrorHandler) {
return {
responseError: function responseError(rejection) {
GlobalErrorHandler.ajaxError(rejection);
return $q.reject(rejection);
}
};
})
.config(['$httpProvider', function ($httpProvider) {
$httpProvider.interceptors.push('errorHttpInterceptor');
}])
UN DECORATOR
“Surcharge un service tout en gardant la main sur l’ancienne implémentation”
❏ $provide.decorator
❏ dans un bloc config
❏ Ok pour l’injection de dépendances
❏ yo angular:decorator MyService
.config(function ($provide) {
$provide.decorator('MyService', function ($delegate) {
// decorate the $delegate
return $delegate;
});
});
POUR LE RUNTIME
On doit être notifier de toutes les erreurs pouvant se produire
● window.onerror
$provide.decorator('$window', function ($delegate,GlobalErrorHandler) {
$delegate.onerror = function (errorMsg, url, lineNumber) {
var error = new Error(errorMsg, url, lineNumber);
GlobalErrorHandler.error(error);
};
return $delegate;
});
POUR LE RUNTIME
On doit être notifier de toutes les erreurs pouvant se produire
● $exceptionHandler
$provide.decorator('$exceptionHandler', function (GlobalErrorHandler,$delegate) {
return function (exception, cause) {
GlobalErrorHandler.error(exception);
$delegate(exception, cause);
};
});
DÉMO
RÉFÉRENCES
● https://github.com/cbalit/angular-error
● https://docs.angularjs.org/api/auto/object/$provide
● https://docs.angularjs.org/api/ng/service/$http
● http://bahmutov.calepin.co/catch-all-errors-in-angular-app.html
http://sfeir.angularjs.expert

Contenu connexe

En vedette

Reported speech (tugas softskill)
Reported speech (tugas softskill)Reported speech (tugas softskill)
Reported speech (tugas softskill)ilyaspriangga
 
Curriculum vitae MARIA ELSA LOPEZ
Curriculum vitae MARIA ELSA LOPEZCurriculum vitae MARIA ELSA LOPEZ
Curriculum vitae MARIA ELSA LOPEZmaria_elsa
 
Integrative marketing
Integrative marketingIntegrative marketing
Integrative marketingMj Payal
 
Organización chart of coomeva
Organización chart of coomevaOrganización chart of coomeva
Organización chart of coomevamaria_elsa
 
Soc 220 mass and movement
Soc 220 mass and movementSoc 220 mass and movement
Soc 220 mass and movementjrmurray6
 
Movement mazimizers for Cube Dwellers
Movement mazimizers for Cube DwellersMovement mazimizers for Cube Dwellers
Movement mazimizers for Cube DwellersJenn Espinosa-Goswami
 

En vedette (11)

Reported speech (tugas softskill)
Reported speech (tugas softskill)Reported speech (tugas softskill)
Reported speech (tugas softskill)
 
Curriculum vitae MARIA ELSA LOPEZ
Curriculum vitae MARIA ELSA LOPEZCurriculum vitae MARIA ELSA LOPEZ
Curriculum vitae MARIA ELSA LOPEZ
 
Best Diet
Best DietBest Diet
Best Diet
 
Integrative marketing
Integrative marketingIntegrative marketing
Integrative marketing
 
Website designs
Website designsWebsite designs
Website designs
 
Organización chart of coomeva
Organización chart of coomevaOrganización chart of coomeva
Organización chart of coomeva
 
Call sheet Powerpoint
Call sheet PowerpointCall sheet Powerpoint
Call sheet Powerpoint
 
Soc 220 mass and movement
Soc 220 mass and movementSoc 220 mass and movement
Soc 220 mass and movement
 
Movement mazimizers for Cube Dwellers
Movement mazimizers for Cube DwellersMovement mazimizers for Cube Dwellers
Movement mazimizers for Cube Dwellers
 
Resolution solutions
Resolution solutionsResolution solutions
Resolution solutions
 
Fema
FemaFema
Fema
 

Similaire à Angular decorator, interceptor and error handler

Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à AngularjsRossi Oddet
 
0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajax0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajaxMarouaneMyyara2
 
Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JSAntoine Rey
 
Monitoring d'applications/environnements PHP : APM et Pinba
Monitoring d'applications/environnements PHP : APM et PinbaMonitoring d'applications/environnements PHP : APM et Pinba
Monitoring d'applications/environnements PHP : APM et PinbaIdaf_1er
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPjulien pauli
 
Node.js, le pavé dans la mare
Node.js, le pavé dans la mareNode.js, le pavé dans la mare
Node.js, le pavé dans la mareValtech
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Jean-Laurent de Morlhon
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Engineor
 
Partie 2: Angular
Partie 2: AngularPartie 2: Angular
Partie 2: AngularHabib Ayad
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web servicesLilia Sfaxi
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile AppHabib MAALEM
 
Mettez du temps réel dans votre Drupal avec Node JS
Mettez du temps réel dans votre Drupal avec Node JSMettez du temps réel dans votre Drupal avec Node JS
Mettez du temps réel dans votre Drupal avec Node JSMatthieu Guillermin
 
Gwt fast overview_v1
Gwt fast overview_v1Gwt fast overview_v1
Gwt fast overview_v1David Herviou
 
Projet base de donnée
Projet base de donnée Projet base de donnée
Projet base de donnée MakremArfaoui2
 
Solution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScriptSolution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScriptRaphaël Semeteys
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech daysJean-Pierre Vincent
 

Similaire à Angular decorator, interceptor and error handler (20)

Introduction à Angularjs
Introduction à AngularjsIntroduction à Angularjs
Introduction à Angularjs
 
0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajax0554-programmation-web-ajax programmation web ajax
0554-programmation-web-ajax programmation web ajax
 
Introduction à Angular JS
Introduction à Angular JSIntroduction à Angular JS
Introduction à Angular JS
 
Monitoring d'applications/environnements PHP : APM et Pinba
Monitoring d'applications/environnements PHP : APM et PinbaMonitoring d'applications/environnements PHP : APM et Pinba
Monitoring d'applications/environnements PHP : APM et Pinba
 
Atelier gwt
Atelier gwtAtelier gwt
Atelier gwt
 
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHPCommunications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
 
Node.js, le pavé dans la mare
Node.js, le pavé dans la mareNode.js, le pavé dans la mare
Node.js, le pavé dans la mare
 
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
Ou sont mes beans, contrats et workflows ? WOA et REST: Un changement de ment...
 
Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !Open close principle, on a dit étendre, pas extends !
Open close principle, on a dit étendre, pas extends !
 
Partie 2: Angular
Partie 2: AngularPartie 2: Angular
Partie 2: Angular
 
Android-Tp5 : web services
Android-Tp5 : web servicesAndroid-Tp5 : web services
Android-Tp5 : web services
 
NodeJS for Mobile App
NodeJS for Mobile AppNodeJS for Mobile App
NodeJS for Mobile App
 
Mettez du temps réel dans votre Drupal avec Node JS
Mettez du temps réel dans votre Drupal avec Node JSMettez du temps réel dans votre Drupal avec Node JS
Mettez du temps réel dans votre Drupal avec Node JS
 
Gwt fast overview_v1
Gwt fast overview_v1Gwt fast overview_v1
Gwt fast overview_v1
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
 
Projet base de donnée
Projet base de donnée Projet base de donnée
Projet base de donnée
 
Nouveautés php 7
Nouveautés php 7Nouveautés php 7
Nouveautés php 7
 
Solution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScriptSolution Linux 2009 - JavaScript
Solution Linux 2009 - JavaScript
 
Function oop - bonnes pratiques ms tech days
Function   oop - bonnes pratiques ms tech daysFunction   oop - bonnes pratiques ms tech days
Function oop - bonnes pratiques ms tech days
 
Vert.x
Vert.xVert.x
Vert.x
 

Plus de Cyril Balit

Devoxx 2014-webComponents
Devoxx 2014-webComponentsDevoxx 2014-webComponents
Devoxx 2014-webComponentsCyril Balit
 
Paris Web 2014 - Outils de test Cross Browser
Paris Web 2014 -  Outils de test Cross BrowserParis Web 2014 -  Outils de test Cross Browser
Paris Web 2014 - Outils de test Cross BrowserCyril Balit
 
Meetup angular rshop
Meetup angular rshopMeetup angular rshop
Meetup angular rshopCyril Balit
 
Je code donc je teste - Paris Web 2013
Je code donc je teste - Paris Web 2013Je code donc je teste - Paris Web 2013
Je code donc je teste - Paris Web 2013Cyril Balit
 

Plus de Cyril Balit (6)

Polymer 1.0
Polymer 1.0Polymer 1.0
Polymer 1.0
 
Polymer
PolymerPolymer
Polymer
 
Devoxx 2014-webComponents
Devoxx 2014-webComponentsDevoxx 2014-webComponents
Devoxx 2014-webComponents
 
Paris Web 2014 - Outils de test Cross Browser
Paris Web 2014 -  Outils de test Cross BrowserParis Web 2014 -  Outils de test Cross Browser
Paris Web 2014 - Outils de test Cross Browser
 
Meetup angular rshop
Meetup angular rshopMeetup angular rshop
Meetup angular rshop
 
Je code donc je teste - Paris Web 2013
Je code donc je teste - Paris Web 2013Je code donc je teste - Paris Web 2013
Je code donc je teste - Paris Web 2013
 

Dernier

BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...idelewebmestre
 
Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en Franceidelewebmestre
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...idelewebmestre
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcsidelewebmestre
 
BOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresBOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresidelewebmestre
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsidelewebmestre
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...idelewebmestre
 
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la NièvreAccompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la Nièvreidelewebmestre
 
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitièresBOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitièresidelewebmestre
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsidelewebmestre
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresidelewebmestre
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...idelewebmestre
 
BOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairBOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairidelewebmestre
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineidelewebmestre
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airidelewebmestre
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLidelewebmestre
 
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueBOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueidelewebmestre
 
Cours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesCours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesPierreFournier32
 
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleuridelewebmestre
 

Dernier (20)

BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
BOW 2024 - Nouveaux modes de logement pour des veaux de boucherie avec accès ...
 
Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024Note agro-climatique n°2 - 17 Avril 2024
Note agro-climatique n°2 - 17 Avril 2024
 
Cadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en FranceCadre réglementaire et développement de l'agrivoltaïsme en France
Cadre réglementaire et développement de l'agrivoltaïsme en France
 
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
BOW 2024 - 3-8 - Adaptation des bâtiments d'élevages de volailles au changeme...
 
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud PorcsBOW 2024 - 3-6 - Adaptation climat chaud Porcs
BOW 2024 - 3-6 - Adaptation climat chaud Porcs
 
BOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitièresBOW 2024 - L'enrichissement du milieu des chèvres laitières
BOW 2024 - L'enrichissement du milieu des chèvres laitières
 
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminantsBow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
Bow 2024 - Plein air à l'intérieur des bâtiments d'élevage de ruminants
 
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
Accompagnement de l'agrivoltaisme - Focus sur l'étude système en Merthe et Mo...
 
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la NièvreAccompagnement de l'agrivoltaïsme dans le département de la Nièvre
Accompagnement de l'agrivoltaïsme dans le département de la Nièvre
 
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitièresBOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
BOW 2024 -3-7- Impact bâtiment stress thermique Vaches laitières
 
BOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminantsBOW 2024-3-10 - Batcool Petits ruminants
BOW 2024-3-10 - Batcool Petits ruminants
 
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitièresBOW 2024 - 3-2 - Stress thermique impact vaches laitières
BOW 2024 - 3-2 - Stress thermique impact vaches laitières
 
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...BOW 2024 - 3-3 -  Adaptation des bâtiments pour ruminants au changement clima...
BOW 2024 - 3-3 - Adaptation des bâtiments pour ruminants au changement clima...
 
BOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chairBOW 2024 - Jardins d'hiver en poulets de chair
BOW 2024 - Jardins d'hiver en poulets de chair
 
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équineBOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
BOW 2024 - L'écurie ouverte : un concept inspirant pour la filière équine
 
BOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein airBOW 2024 - Logement des veaux laitiers en plein air
BOW 2024 - Logement des veaux laitiers en plein air
 
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VLBOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
BOW 2024 -3-9 - Matelas de logettes à eau refroidie VL
 
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatiqueBOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
BOW 2024 - 3 1 - Les infrastructures équestres et le changement climatique
 
Cours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pagesCours polymère presentation powerpoint 46 pages
Cours polymère presentation powerpoint 46 pages
 
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleurBOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
BOW 2024 - 3-5 - Des solutions numériques pour se préparer aux pics de chaleur
 

Angular decorator, interceptor and error handler

  • 4. GLOBALERRORHANDLER Un service GlobalErrorHandler pour centraliser la stratégie ● message dans l’application ● trace local ● envoi au serveur ... .factory('GlobalErrorHandler', function ($window) { var service = { error: function (error) { }, ajaxError: function (rejection) {. }, }; return service; });
  • 5. POUR LES APPELS HTTP ● Création d’un service Interceptor: objet implémentant 4 méthodes: ○ request ○ requestError ○ response ○ responseError ● Enregistrer notre interceptor dans le $httpProvider.interceptors .factory('errorHttpInterceptor', function ($q, GlobalErrorHandler) { return { responseError: function responseError(rejection) { GlobalErrorHandler.ajaxError(rejection); return $q.reject(rejection); } }; }) .config(['$httpProvider', function ($httpProvider) { $httpProvider.interceptors.push('errorHttpInterceptor'); }])
  • 6. UN DECORATOR “Surcharge un service tout en gardant la main sur l’ancienne implémentation” ❏ $provide.decorator ❏ dans un bloc config ❏ Ok pour l’injection de dépendances ❏ yo angular:decorator MyService .config(function ($provide) { $provide.decorator('MyService', function ($delegate) { // decorate the $delegate return $delegate; }); });
  • 7. POUR LE RUNTIME On doit être notifier de toutes les erreurs pouvant se produire ● window.onerror $provide.decorator('$window', function ($delegate,GlobalErrorHandler) { $delegate.onerror = function (errorMsg, url, lineNumber) { var error = new Error(errorMsg, url, lineNumber); GlobalErrorHandler.error(error); }; return $delegate; });
  • 8. POUR LE RUNTIME On doit être notifier de toutes les erreurs pouvant se produire ● $exceptionHandler $provide.decorator('$exceptionHandler', function (GlobalErrorHandler,$delegate) { return function (exception, cause) { GlobalErrorHandler.error(exception); $delegate(exception, cause); }; });
  • 10. RÉFÉRENCES ● https://github.com/cbalit/angular-error ● https://docs.angularjs.org/api/auto/object/$provide ● https://docs.angularjs.org/api/ng/service/$http ● http://bahmutov.calepin.co/catch-all-errors-in-angular-app.html