2024年PHP日本大会

异常

(PHP 5, PHP 7, PHP 8)

简介

Exception 是所有用户异常的基类。

类概要

class Exception implements Throwable {
/* 属性 */
protected string $message = "";
private string $string = "";
protected int $code;
protected string $file = "";
protected int $line;
private array $trace = [];
private ?Throwable $previous = null;
/* 方法 */
public __construct(string $message = "", int $code = 0, ?Throwable $previous = null)
final public getMessage(): string
final public getPrevious(): ?Throwable
final public getCode(): int
final public getFile(): string
final public getLine(): int
final public getTrace(): array
final public getTraceAsString(): string
public __toString(): string
private __clone(): void
}

属性

message

异常消息

code

异常代码

file

创建异常的文件名

line

创建异常的行号

previous

之前抛出的异常

string

堆栈跟踪的字符串表示

trace

作为数组的堆栈跟踪

目录

添加注释

用户贡献的注释 3条注释

whysteepy at gmail dot com
6年前
截至7.2.0版本的Throwable和Exception树的列表

错误
算术错误
除以零错误
断言错误
解析错误
类型错误
参数计数错误
异常
ClosedGeneratorException
DOMException
ErrorException
IntlException
逻辑异常
BadFunctionCallException
BadMethodCallException
DomainException
InvalidArgumentException
LengthException
OutOfRangeException
PharException
ReflectionException
运行时异常
OutOfBoundsException
溢出异常
PDOException
RangeException
下溢异常
UnexpectedValueException
SodiumException

在以下链接中查找脚本和输出
https://gist.github.com/mlocati/249f07b074a0de339d4d1ca980848e6a
https://3v4l.org/sDMsv

由某位网友发布 https://php.net/manual/en/class.throwable.php
cHao
10年前
请注意,异常的属性是在创建异常时填充的,而不是在抛出异常时填充的。抛出异常似乎不会修改它们。

除其他事项外,这意味着

* 异常将指责创建它的行,而不是抛出它的行。

* 与其他一些语言不同,重新抛出异常不会弄乱跟踪。

* 抛出的异常和未抛出的异常看起来基本相同。在我的机器上,唯一可见的区别是抛出的异常具有`xdebug_message`属性,而未抛出的异常则没有。当然,如果您没有安装xdebug,您甚至不会得到这个。
shaman_master at list dot ru
4年前
注意:此文档不完整,ReflectionObject::export($exception)
<?php
类 [ 类
Exception 实现 Throwable ] 的对象 {
-
属性 [7] {
属性 [ protected $message ]
属性 [ private $string ]
属性 [ protected $code ]
属性 [ protected $file ]
属性 [ protected $line ]
属性 [ private $trace ]
属性 [ private $previous ]
}
-
方法 [11] {
方法 [ final private 方法 __clone ] {
}

方法 [ public 方法 __construct ] {

-
参数 [3] {
参数 #0 [ $message ]
参数 #1 [ $code ]
参数 #2 [ $previous ]
}
}

方法 [ public 方法 __wakeup ] {
}

方法 [ final public 方法 getMessage ] {
}

方法 [ final public 方法 getCode ] {
}

方法 [ final public 方法 getFile ] {
}

方法 [ final public 方法 getLine ] {
}

方法 [ final public 方法 getTrace ] {
}

方法 [ final public 方法 getPrevious ] {
}

方法 [ final public 方法 getTraceAsString ] {
}

方法 [ public 方法 __toString ] {
}
}
}
?>

缺失

属性 [ private $string ]
属性 [ private $trace ]
属性 [ private $previous ]

方法 [ public 方法 __wakeup ] {
}
To Top