Enviar búsqueda
Cargar
Error handling in JavaScript
•
2 recomendaciones
•
1,968 vistas
Sebastian Springer
Seguir
My Talk at
Leer menos
Leer más
Tecnología
Denunciar
Compartir
Denunciar
Compartir
1 de 67
Descargar ahora
Descargar para leer sin conexión
Recomendados
Tech Talks - Fundamentos JavaScript
Tech Talks - Fundamentos JavaScript
BVision
Metamoose
Metamoose
Ynon Perek
Kumpulan script jahil
Kumpulan script jahil
UNP PGRI KEDIRI
Javascript Common Mistakes
Javascript Common Mistakes
동수 장
Growing Pains: Avoiding Module Hell
Growing Pains: Avoiding Module Hell
Puppet
Javascript modules
Javascript modules
Ron Apelbaum
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Write Powerful Javascript Modules To Make Your Apps DRY (Brian Leathem)
Red Hat Developers
DevNexus 2016
DevNexus 2016
Stephanie Brubaker
Más contenido relacionado
Más de Sebastian Springer
Schnelleinstieg in Angular
Schnelleinstieg in Angular
Sebastian Springer
Creating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.js
Sebastian Springer
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
Sebastian Springer
From Zero to Hero – Web Performance
From Zero to Hero – Web Performance
Sebastian Springer
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im Web
Sebastian Springer
A/B Testing mit Node.js
A/B Testing mit Node.js
Sebastian Springer
Angular2
Angular2
Sebastian Springer
Einführung in React
Einführung in React
Sebastian Springer
JavaScript Performance
JavaScript Performance
Sebastian Springer
ECMAScript 6 im Produktivbetrieb
ECMAScript 6 im Produktivbetrieb
Sebastian Springer
Streams in Node.js
Streams in Node.js
Sebastian Springer
JavaScript Performance
JavaScript Performance
Sebastian Springer
Große Applikationen mit AngularJS
Große Applikationen mit AngularJS
Sebastian Springer
Testing tools
Testing tools
Sebastian Springer
Node.js Security
Node.js Security
Sebastian Springer
Typescript
Typescript
Sebastian Springer
Reactive Programming
Reactive Programming
Sebastian Springer
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
Sebastian Springer
Warum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser macht
Sebastian Springer
Lean Startup mit JavaScript
Lean Startup mit JavaScript
Sebastian Springer
Más de Sebastian Springer
(20)
Schnelleinstieg in Angular
Schnelleinstieg in Angular
Creating Enterprise Web Applications with Node.js
Creating Enterprise Web Applications with Node.js
Divide and Conquer – Microservices with Node.js
Divide and Conquer – Microservices with Node.js
From Zero to Hero – Web Performance
From Zero to Hero – Web Performance
Von 0 auf 100 - Performance im Web
Von 0 auf 100 - Performance im Web
A/B Testing mit Node.js
A/B Testing mit Node.js
Angular2
Angular2
Einführung in React
Einführung in React
JavaScript Performance
JavaScript Performance
ECMAScript 6 im Produktivbetrieb
ECMAScript 6 im Produktivbetrieb
Streams in Node.js
Streams in Node.js
JavaScript Performance
JavaScript Performance
Große Applikationen mit AngularJS
Große Applikationen mit AngularJS
Testing tools
Testing tools
Node.js Security
Node.js Security
Typescript
Typescript
Reactive Programming
Reactive Programming
Best Practices für TDD in JavaScript
Best Practices für TDD in JavaScript
Warum ECMAScript 6 die Welt ein Stückchen besser macht
Warum ECMAScript 6 die Welt ein Stückchen besser macht
Lean Startup mit JavaScript
Lean Startup mit JavaScript
Último
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applications
nooralam814309
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024
Brian Pichman
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
KaustubhBhavsar6
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
Neo4j
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Alkin Tezuysal
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdf
Infopole1
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.
IPLOOK Networks
EMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? Webinar
ThousandEyes
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
ThousandEyes
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Product School
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
Brian Pichman
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
DianaGray10
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series - Day 1
DianaGray10
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its application
Knoldus Inc.
Top 10 Squarespace Development Companies
Top 10 Squarespace Development Companies
TopCSSGallery
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAI
Vijayananda Mohire
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)
IES VE
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)
codyslingerland1
Último
(20)
Graphene Quantum Dots-Based Composites for Biomedical Applications
Graphene Quantum Dots-Based Composites for Biomedical Applications
CyberSecurity - Computers In Libraries 2024
CyberSecurity - Computers In Libraries 2024
How to become a GDSC Lead GDSC MI AOE.pptx
How to become a GDSC Lead GDSC MI AOE.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
GraphSummit Copenhagen 2024 - Neo4j Vision and Roadmap.pptx
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Design and Modeling for MySQL SCALE 21X Pasadena, CA Mar 2024
Extra-120324-Visite-Entreprise-icare.pdf
Extra-120324-Visite-Entreprise-icare.pdf
Introduction - IPLOOK NETWORKS CO., LTD.
Introduction - IPLOOK NETWORKS CO., LTD.
EMEA What is ThousandEyes? Webinar
EMEA What is ThousandEyes? Webinar
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Outage Analysis: March 5th/6th 2024 Meta, Comcast, and LinkedIn
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
Webinar: The Art of Prioritizing Your Product Roadmap by AWS Sr PM - Tech
AI Workshops at Computers In Libraries 2024
AI Workshops at Computers In Libraries 2024
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
Stobox 4: Revolutionizing Investment in Real-World Assets Through Tokenization
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 2
UiPath Studio Web workshop series - Day 1
UiPath Studio Web workshop series - Day 1
Introduction to RAG (Retrieval Augmented Generation) and its application
Introduction to RAG (Retrieval Augmented Generation) and its application
Top 10 Squarespace Development Companies
Top 10 Squarespace Development Companies
My key hands-on projects in Quantum, and QAI
My key hands-on projects in Quantum, and QAI
The Importance of Indoor Air Quality (English)
The Importance of Indoor Air Quality (English)
The New Cloud World Order Is FinOps (Slideshow)
The New Cloud World Order Is FinOps (Slideshow)
Error handling in JavaScript
1.
Handle with care Fehlerbehandlung
in JavaScript Friday 8 November 13
2.
WER BIN ICH? • Sebastian
Springer • https://github.com/sspringer82 • @basti_springer Friday 8 November 13
3.
Friday 8 November
13
4.
Was ist ein
Fehler? ☠ Friday 8 November 13
5.
Was ist ein
Fehler? ☠ Whoops, this should not happen. Friday 8 November 13
6.
Fehlertypen Friday 8 November
13
7.
Fehlertypen Friday 8 November
13
8.
Fehlertypen Friday 8 November
13
9.
Fehlertypen Friday 8 November
13
10.
Fehlertypen Friday 8 November
13
11.
Fehlertypen Friday 8 November
13
12.
Eigene Fehler throw new
Error('An error occurred'); Friday 8 November 13
13.
Eigene Fehler var MyErr
= function (message) { this.message = message; this.name = 'MyErr'; } MyErr.prototype = new Error(); MyErr.prototype.constructor = MyErr; Friday 8 November 13
14.
Friday 8 November
13
15.
Abfangen von Fehlern try
{ throw new Error('Hello World'); } catch (e) { console.log(e); } finally { console.log('Finished'); } Friday 8 November 13
16.
Abfangen von Fehlern try
{ } catch (RangeError e) { } Friday 8 November 13
17.
Abfangen von Fehlern try
{ } catch (RangeError e) { } Friday 8 November 13
18.
Abfangen von Fehlern try
{ } catch (e) { if (e instanceof RangeError) { } } Friday 8 November 13
19.
Callbacks Friday 8 November
13
20.
Fehler in Callbacks Applikation Friday
8 November 13 Asynchrone Ausführung
21.
Fehler in Callbacks Applikation Friday
8 November 13 Asynchrone Ausführung
22.
Fehler in Callbacks Asynchrone Ausführung Applikation Operation Friday
8 November 13
23.
Fehler in Callbacks Asynchrone Ausführung Applikation Operation Friday
8 November 13
24.
Fehler in Callbacks Asynchrone Ausführung Applikation Operation ☠☂
☏☣☢ Friday 8 November 13
25.
Fehler in Callbacks Asynchrone Ausführung Applikation Operation Callback Friday
8 November 13 ☠☂ ☏☣☢
26.
Fehler in Callbacks Asynchrone Ausführung Applikation Operation Callback Friday
8 November 13 ☠☂ ☏☣☢
27.
Fehler in Callbacks function
myTimeout() { throw new Error("whoops"); } Friday 8 November 13
28.
Fehler in Callbacks function
myTimeout() { throw new Error("whoops"); } try { setTimeout("myTimeout()", 0); } catch (e) { console.log(e); } Friday 8 November 13
29.
Fehler in Callbacks ☠ function
myTimeout() { throw new Error("whoops"); } try { setTimeout("myTimeout()", 0); } catch (e) { console.log(e); } Friday 8 November 13
30.
Friday 8 November
13
31.
Fehler in Callbacks $.ajax({ url:
‘/something’, success: function (data) { ... }, error: function (data) { ... } }); Friday 8 November 13
32.
Friday 8 November
13
33.
Fehler in Callbacks var
fs = require('fs'); fs.readFile('file', function (err, d) { ... }); Friday 8 November 13
34.
Fehler in Callbacks var
fs = require('fs'); fs.readFile('file', function (err, d) { ... }); null Friday 8 November 13
35.
Fehler in Callbacks Error
{ errno: ... code: ... path: ... message: ... } Friday 8 November 13
36.
Events Friday 8 November
13
37.
Error Events Subject Friday 8
November 13 Observer
38.
Error Events Subject Friday 8
November 13 Observer
39.
Error Events Subject Friday 8
November 13 Observer
40.
Error Events Subject Observer on(‘error’, function... Friday
8 November 13
41.
Error Events Subject Observer on(‘error’, function... ☠☂
☏☣☢ Friday 8 November 13
42.
Error Events Subject Observer on(‘error’, function... ☠☂
☏☣☢ trigger(‘error’, {... Friday 8 November 13
43.
Error Events Subject Observer on(‘error’, function... ☠☂
☏☣☢ trigger(‘error’, {... Friday 8 November 13
44.
Promises http://wiki.commonjs.org/wiki/Promises Friday 8 November
13
45.
Promises In Javascript, promises
are objects which represent the pending result of an asynchronous operation. (Martin Fowler) Friday 8 November 13
46.
Promises $.ajax({ url: ‘/my/url’ }).done(function (data)
{ ... }).fail(function (data) { ... }).always(function (data) { ... }); Friday 8 November 13
47.
Promises function promisedFunc() { var
def = $.Deferred(); // do something asynchronous // success def.resolve(); // fail def.reject(); return def.promise(); } Friday 8 November 13
48.
Promises promisedFunc().done(function () { //
success }).fail(function () { // failure }).always(function () { // success & failure }); Friday 8 November 13
49.
Promises $.when( promisedFunc(), promisedFunc() ).then(success, failure); Friday 8
November 13
50.
Promises • http://api.jquery.com/category/deferred-object/ Client only • https://github.com/kriskowal/q Client +
Server • https://github.com/kriszyp/node-promise Server only Friday 8 November 13
51.
Node.js Domain Friday 8
November 13
52.
Node domain var domain
= require(‘domain’).create(); domain.on(‘error’, function (err) { console.log(err); }); domain.run(function () { ... }); Friday 8 November 13
53.
Node Domain Wird ausgeführt
bei: • • Friday 8 November 13 error-Events Exceptions
54.
window.onerror Friday 8 November
13
55.
window.onerror catch it all! Friday
8 November 13
56.
window.onerror window.onerror = function
(msg, url, nr) { ... return true; } Friday 8 November 13
57.
window.onerror window.onerror Code Friday 8 November
13
58.
und jetzt? Friday 8
November 13
59.
und jetzt? Logging FTW! Friday
8 November 13
60.
Logging Client Friday 8 November
13 Server
61.
Logging Client Server ☠☂ ☏☣☢ Friday 8
November 13
62.
Logging Log Message Client ☠☂ ☏☣☢ Friday
8 November 13 Server
63.
Logging Log Message Client ☠☂ ☏☣☢ Friday
8 November 13 Server
64.
Logging window.onerror = function
(msg, url, nr) { $.ajax({ url: ‘/logger’ data: { msg: msg, url: url, nr: nr } }); return true; } Friday 8 November 13
65.
Logging Fire and Forget Friday
8 November 13
66.
Fragen? Friday 8 November
13
67.
Sebastian Springer sebastian.springer@mayflower.de Mayflower GmbH Mannhardtstr.
6 80538 München Deutschland @basti_springer https://github.com/sspringer82 Friday 8 November 13
Descargar ahora