Add warning to POD about try/finally
David Lowe [Fri, 7 Mar 2014 17:33:54 +0000 (17:33 +0000)]
try/finally suppresses errors, which is unexpected behaviour if you come
from another programming language.

lib/Try/Tiny.pm

index 62a8ac0..91307b4 100644 (file)
@@ -232,6 +232,13 @@ C<finally> blocks are always executed making them suitable for cleanup code
 which cannot be handled using local.  You can add as many C<finally> blocks to a
 given C<try> block as you like.
 
+Note that adding a C<finally> block without a preceding C<catch> block
+suppresses any errors. This behaviour is consistent with using a standalone
+C<eval>, but it is not consistent with C<try>/C<finally> patterns found in
+other programming languages, such as Java, Python, Javascript or C#. If you
+learnt the C<try>/C<finally> pattern from one of these languages, watch out for
+this.
+
 =head1 EXPORTS
 
 All functions are exported by default using L<Exporter>.