PHPackages                             phabitat/exceptional - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Logging &amp; Monitoring](/categories/logging)
4. /
5. phabitat/exceptional

ActiveLibrary[Logging &amp; Monitoring](/categories/logging)

phabitat/exceptional
====================

0.0.0(10y ago)138MITPHP

Since Dec 25Pushed 10y ago1 watchersCompare

[ Source](https://github.com/phabitat/exceptional)[ Packagist](https://packagist.org/packages/phabitat/exceptional)[ RSS](/packages/phabitat-exceptional/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependencies (2)Versions (2)Used By (0)

Exceptional
===========

[](#exceptional)

Exception framework inspired by PHP's [SPL Exceptions](http://php.net/manual/en/spl.exceptions.php) with an extra touch of reality. Most of the time the challenge is not catching or logging exceptions, but defining the right level of granularity, structuring and categorising them. Exceptional tries to solve this problem.

This project builds on a principle that the application throws an exception only for two reasons: either because user does something wrong or because the code does something wrong. As a result, there are two core classes: `ApplicationException` and `UserException`.

```
Exception

    ApplicationException                        Code does something bad.
        FunctionException                       Functions fails.
            MethodException                     Method fails.
                ArgumentException               Invalid method arguments.
                    ArgumentTypeException       Invalid argument type.
                    ArgumentValueException      Invalid argument value.
        ImplementationException                 Failing implementation.
            NotImplementedException             Block not yet implemented.

    UserException                               User does something bad.
        InputException                          Invalid input.
        ProtocolException                       Invalid operation over HTTP protocol.
            RequestException                    Invalid request, equivalent of 400.
                InputException                  Invalid request input.
                    ParameterException          Invalid parameter.
                    FileException               Invalid file.
                LocationException               Invalid location, equivalent of 404.
                MethodException                 Method is not allowed, equivalent of 405.
                ProtocolException               Invalid protocol (http/https).

```

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3840d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/06f7d653e7576f940b0278cf420908e2090e0e3b924a1173be0204b55b61e9d0?d=identicon)[ianbytchek](/maintainers/ianbytchek)

---

Top Contributors

[![iby](https://avatars.githubusercontent.com/u/1086845?v=4)](https://github.com/iby "iby (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/phabitat-exceptional/health.svg)

```
[![Health](https://phpackages.com/badges/phabitat-exceptional/health.svg)](https://phpackages.com/packages/phabitat-exceptional)
```

###  Alternatives

[psr/log

Common interface for logging libraries

10.4k1.2B10.9k](/packages/psr-log)[open-telemetry/api

API for OpenTelemetry PHP.

1938.5M263](/packages/open-telemetry-api)[open-telemetry/sdk

SDK for OpenTelemetry PHP.

2326.5M317](/packages/open-telemetry-sdk)[illuminated/console-logger

Logging and Notifications for Laravel Console Commands.

8676.7k](/packages/illuminated-console-logger)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
