Make the testcase more clear.

The problem is not detecting that an exception was thrown but rather
reading what exception it was.

Quoting from Try::Tiny's documentation on what the problem is:
https://metacpan.org/pod/Try::Tiny

     When you run an eval block and it succeeds, $@ will be cleared,
     potentially clobbering an error that is currently being caught.
     This causes action at a distance, clearing previous errors your
     caller may have not yet handled.
     (...)
     More specifically, $@ is clobbered at the beginning of the eval,
     which also makes it impossible to capture the previous error
     before you die (for instance when making exception objects with
     error stacks).

Their proposed solution is what is implemented on this pull request.

    my $error = do {
      local $@;
      eval { ... };
      $@;
    };

Except that it is using a function instead of a do{} block.