---
name: "PPI::Exception"
section: "3pm"
platform: "linux"
package: "perl-ppi"
version: "1.291-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/PPI::Exception"
---

# PPI::Exception(3pm)

The PPI exception base class

## NAME

PPI::Exception - The PPI exception base class

## SYNOPSIS

```
  use PPI::Exception;

  my $e = PPI::Exception->new( 'something happened' );
  $e->throw;
  PPI::Exception->new( message => 'something happened' )->throw;
  PPI::Exception->throw( message => 'something happened' );
```

## DESCRIPTION

All exceptions thrown from within PPI will be instances or derivations of this class.

## METHODS

### new $message \| message =\> $message, ...

Constructs and returns a new `"PPI::Exception"` object.

A message for the exception can be passed, either as a string or as `"message => $message"`. The message is available via the `"message"` method.

### throw

If called on a `"PPI::Exception"` object, throws the object. If called on the class name, uses the arguments to construct a `"PPI::Exception"` and then throw it.

Each time the object is thrown, information from the Perl \<**caller**(0)\> call is saved and made available via the `"callers"` method.

This method never returns.

### message

Returns the exception message passed to the object's constructor, or a default message.

### callers

Returns a listref, each element of which is a listref of `caller(0)` information.  The returned listref can be empty.
