xref: /PHP-8.2/Zend/zend_exceptions.stub.php (revision bb5be650)
1<?php
2
3/** @generate-class-entries */
4
5require "zend_constants.stub.php";
6
7interface Throwable extends Stringable
8{
9    public function getMessage(): string;
10
11    /** @return int */
12    public function getCode(); // TODO add proper type (i.e. int|string)
13
14    public function getFile(): string;
15
16    public function getLine(): int;
17
18    public function getTrace(): array;
19
20    public function getPrevious(): ?Throwable;
21
22    public function getTraceAsString(): string;
23}
24
25class Exception implements Throwable
26{
27    /**
28     * Intentionally left untyped for BC reasons
29     * @var string
30     */
31    protected $message = "";
32    private string $string = "";
33    /**
34     * Intentionally left untyped for BC reasons
35     * @var int
36     */
37    protected $code = 0;  // TODO add proper type (i.e. int|string)
38    protected string $file = "";
39    protected int $line = 0;
40    private array $trace = [];
41    private ?Throwable $previous = null;
42
43    private function __clone(): void {}
44
45    public function __construct(string $message = "", int $code = 0, ?Throwable $previous = null) {}
46
47    /** @tentative-return-type */
48    public function __wakeup(): void {}
49
50    final public function getMessage(): string {}
51
52    /** @return int */
53    final public function getCode() {} // TODO add proper type (i.e. int|string)
54
55    final public function getFile(): string {}
56
57    final public function getLine(): int {}
58
59    final public function getTrace(): array {}
60
61    final public function getPrevious(): ?Throwable {}
62
63    final public function getTraceAsString(): string {}
64
65    public function __toString(): string {}
66}
67
68class ErrorException extends Exception
69{
70    protected int $severity = E_ERROR;
71
72    public function __construct(
73        string $message = "",
74        int $code = 0,
75        int $severity = E_ERROR,
76        ?string $filename = null,
77        ?int $line = null,
78        ?Throwable $previous = null
79    ) {}
80
81    final public function getSeverity(): int {}
82}
83
84class Error implements Throwable
85{
86    /**
87     * Intentionally left untyped for BC reasons
88     * @var string
89     */
90    protected $message = "";
91    private string $string = "";
92    /**
93     * Intentionally left untyped for BC reasons
94     * @var int
95     */
96    protected $code = 0; // TODO add proper type (i.e. int|string)
97    protected string $file = "";
98    protected int $line;
99    private array $trace = [];
100    private ?Throwable $previous = null;
101
102    /** @implementation-alias Exception::__clone */
103    private function __clone(): void {}
104
105    /** @implementation-alias Exception::__construct */
106    public function __construct(string $message = "", int $code = 0, ?Throwable $previous = null) {}
107
108    /**
109     * @tentative-return-type
110     * @implementation-alias Exception::__wakeup
111     */
112    public function __wakeup(): void {}
113
114    /** @implementation-alias Exception::getMessage */
115    final public function getMessage(): string {}
116
117    /**
118     * @return int
119     * @implementation-alias Exception::getCode
120     */
121    final public function getCode() {}
122
123    /** @implementation-alias Exception::getFile */
124    final public function getFile(): string {}
125
126    /** @implementation-alias Exception::getLine */
127    final public function getLine(): int {}
128
129    /** @implementation-alias Exception::getTrace */
130    final public function getTrace(): array {}
131
132    /** @implementation-alias Exception::getPrevious */
133    final public function getPrevious(): ?Throwable {}
134
135    /** @implementation-alias Exception::getTraceAsString */
136    final public function getTraceAsString(): string {}
137
138    /** @implementation-alias Exception::__toString */
139    public function __toString(): string {}
140}
141
142class CompileError extends Error
143{
144}
145
146class ParseError extends CompileError
147{
148}
149
150class TypeError extends Error
151{
152}
153
154class ArgumentCountError extends TypeError
155{
156}
157
158class ValueError extends Error
159{
160}
161
162class ArithmeticError extends Error
163{
164}
165
166class DivisionByZeroError extends ArithmeticError
167{
168}
169
170class UnhandledMatchError extends Error
171{
172}
173