1: | <?php declare(strict_types=1); |
2: | |
3: | namespace Salient\Contract\Core\Exception; |
4: | |
5: | use Stringable; |
6: | use Throwable; |
7: | |
8: | /** |
9: | * @api |
10: | */ |
11: | interface ExceptionInterface extends Throwable |
12: | { |
13: | /** |
14: | * Get an instance with an exit status to return if the exception is not |
15: | * caught on the command line |
16: | * |
17: | * @return static |
18: | */ |
19: | public static function withExitStatus(?int $exitStatus): ExceptionInterface; |
20: | |
21: | /** |
22: | * Get the exit status to return if the exception is not caught on the |
23: | * command line |
24: | */ |
25: | public function getExitStatus(): ?int; |
26: | |
27: | /** |
28: | * Get exception metadata as an associative array |
29: | * |
30: | * @return array<string,int|float|string|bool|Stringable|null> |
31: | */ |
32: | public function getMetadata(): array; |
33: | } |
34: |