Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
JAVASCRIPT STACK TRACES THE GOOD, THE BAD, AND THE UGLY JAMES SMITH (@LOOPJ) - CO-FOUNDER @ BUGSNAG
Slide 2
Slide 2 text
WE’RE HIRING!
[email protected]
Slide 3
Slide 3 text
WHY DO JS ERRORS HAPPEN? EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError MyCustomError
Slide 4
Slide 4 text
FINDING ERRORS IN DEVELOPMENT USE YOUR BROWSER’S DEVELOPER CONSOLE EASY! :)
Slide 5
Slide 5 text
FINDING ERRORS IN PRODUCTION LISTEN FOR ERROR EVENTS AND PHONE HOME HARDER :(
Slide 6
Slide 6 text
WHAT DOES AN ERROR LOOK LIKE ERROR CLASS ERROR MESSAGE STACK TRACE
Slide 7
Slide 7 text
WTF IS A STACK TRACE? AKA “What code caused this crash?” “The sequence of functions called so far in a program”
Slide 8
Slide 8 text
WHY DO I NEED A STACK TRACE? "Generally, if you can’t reproduce a bug, it’s almost impossible to fix" - Michael Scott
Slide 9
Slide 9 text
CAN WE ALWAYS GET A STACK TRACE? YES!* *But browser differences make things difficult
Slide 10
Slide 10 text
THE GOOD STACK TRACES IN WINDOW.ONERROR :)
Slide 11
Slide 11 text
THE BAD NO STACK TRACES IN WINDOW.ONERROR, BUT… 9+
Slide 12
Slide 12 text
FIXING THE BAD WE CAN WRAP FUNCTIONS TO ADD ERROR HANDLING!
Slide 13
Slide 13 text
FIXING THE BAD WE CAN AUTOMATICALLY WRAP ALL CALLBACKS!
Slide 14
Slide 14 text
THE UGLY < 9 NO STACK TRACES IN TRY/CATCH, BUT…
Slide 15
Slide 15 text
FIXING THE UGLY WE CAN GENERATE AN APPROXIMATE STACK TRACE!
Slide 16
Slide 16 text
PHEW WE NOW HAVE STACK TRACES EVERYWHERE!
Slide 17
Slide 17 text
https://github.com/bugsnag/bugsnag-js YOU CAN STEAL OUR CODE! THAT SOUNDS LIKE A LOT OF WORK
Slide 18
Slide 18 text
THAT SOUNDS LIKE A LOT OF WORK YOU CAN LET US HANDLE EVERYTHING FOR YOU! https://bugsnag.com
Slide 19
Slide 19 text
THANKS! @LOOPJ