]> Dogcows Code - chaz/talk-event-driven-programming-in-perl/blobdiff - slides.html
add slides on exception handling
[chaz/talk-event-driven-programming-in-perl] / slides.html
index d86ee03aae1a18331b5ee606173fcdcf85011bb0..6d589b4552d0e1edcb157ecabcd8f1e42d7d6b5f 100644 (file)
@@ -445,6 +445,56 @@ while (1) {
 - [`Mojo::Reactor::Poll`](https://metacpan.org/source/Mojo::Reactor::Poll)
 ]
 
+---
+name:  not-all-roses
+class: center, middle
+
+![Thorns](img/thorn.jpg)
+
+## Watch out for the thorns...
+
+???
+There are some special considerations you need to take when writing event-driven code.
+
+---
+class: center, middle
+
+## Exceptions for error handling
+
+---
+class: center, middle
+
+### Problem: No exception handler up the call stack
+
+---
+class: ex-exceptions
+
+## Rule: Don't die/throw in event handlers.
+
+--
+### Error callback pattern
+
+```perl
+do_something_asynchronously(
+    callback => sub { ... },
+    on_error => sub { ... },
+);
+```
+
+---
+class: ex-exceptions
+
+## Rule: Don't die/throw in event handlers.
+
+### Use promises
+
+```perl
+my $promise = do_something_asynchronously();
+
+$promise->on_done(sub { ... });
+$promise->on_fail(sub { ... });
+```
+
 ---
 class: center, middle
 
This page took 0.017091 seconds and 4 git commands to generate.