---
name: "Try::Tiny::ByClass"
section: "3pm"
platform: "linux"
package: "libtry-tiny-byclass-perl"
version: "0.01-4"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Try::Tiny::ByClass"
---

# Try::Tiny::ByClass(3pm)

selectively catch exceptions by class name

## NAME

Try::Tiny::ByClass - selectively catch exceptions by class name

## SYNOPSIS

```
  use Try::Tiny::ByClass;

  try {
        die $exception_object;
  } catch_case [
    'Some::Class' => sub {
      # handle Some::Class exceptions
    },
    'Exception::DivByZero' => sub {
      # handle Exception::DivByZero exceptions
    },
  ], finally {
    # always do this
  };
```

## DESCRIPTION

This module is a simple wrapper around `"Try::Tiny"`, which see. It re-exports `"try"`, `"catch"`, and `"finally"`.

In addition, it provides a way to catch only some exceptions by filtering on the class (including superclasses and consumed roles) of an exception object.

### Functions

- catch\_case ($;@)

  Intended to be used instead of `"catch"` in the second argument position of `"try"`.

  Instead of a block it takes a reference to an array of `"CLASS => CODEREF"` pairs, which it passes on to `"dispatch"` in `"Dispatch::Class"`.

## SEE ALSO

Try::Tiny, Dispatch::Class

## AUTHOR

Lukas Mai, `"<l.mai at web.de>"`

## COPYRIGHT & LICENSE

Copyright 2013 Lukas Mai.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.
