thesis / exceptionally
Thesis Exceptionally
Fund package maintenance!
0.3.0
2026-03-30 14:51 UTC
Requires
- php: ^8.3
Requires (Dev)
- phpunit/phpunit: ^12.5.14
README
A tiny PHP library that converts errors to exceptions.
Installation
composer require thesis/exceptionally
Requires PHP 8.3+.
Usage
use function Thesis\exceptionally; // Converts PHP errors to ErrorException $content = exceptionally(static fn() => file_get_contents('/path/to/file'));
Many PHP functions trigger errors instead of throwing exceptions. This makes error handling inconsistent and cumbersome.
exceptionally() wraps a callable and converts any triggered error into a native ErrorException.
Error suppression operator
Errors suppressed with @ are not converted to exceptions:
// Does not throw — the error is suppressed $content = exceptionally(static fn() => @file_get_contents('/path/to/file'));
Filtering by error level
By default, all levels except E_DEPRECATED and E_USER_DEPRECATED are converted.
Deprecations typically come from third-party libraries and should not interrupt execution.
You can specify which levels to convert:
// Convert notices $result = exceptionally($function, E_USER_NOTICE); // Convert warnings and notices $result = exceptionally($function, E_USER_WARNING | E_USER_NOTICE); // Convert all, including deprecations $result = exceptionally($function, E_ALL);
License
MIT