PHP 8.2.32 Released!

Exception

(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 function __construct (string $message = "", int $code = 0, ? Throwable $previous = null )
final public function getMessage (): string
final public function getPrevious (): ? Throwable
final public function getCode (): int
final public function getFile (): string
final public function getLine (): int
final public function getTrace (): array
final public function getTraceAsString (): string
public function __toString (): string
private function __clone (): void
}

属性

message

异常消息内容

code

异常代码

file

抛出异常的文件名

line

抛出异常在该文件中的行号

previous

之前抛出的异常

string

字符串形式的堆栈跟踪

trace

数组形式的堆栈跟踪

目录

发现了问题?

了解如何改进此页面提交拉取请求报告一个错误
+添加备注

用户贡献的备注 3 notes

up
102
whysteepy at gmail dot com
8 years ago
Lists of Throwable and Exception tree as of 7.2.0
 Error
 ArithmeticError
 DivisionByZeroError
 AssertionError
 ParseError
 TypeError
 ArgumentCountError
 Exception
 ClosedGeneratorException
 DOMException
 ErrorException
 IntlException
 LogicException
 BadFunctionCallException
 BadMethodCallException
 DomainException
 InvalidArgumentException
 LengthException
 OutOfRangeException
 PharException
 ReflectionException
 RuntimeException
 OutOfBoundsException
 OverflowException
 PDOException
 RangeException
 UnderflowException
 UnexpectedValueException
 SodiumException 
Find the script and output in the following links:
https://gist.github.com/mlocati/249f07b074a0de339d4d1ca980848e6a
https://3v4l.org/sDMsv
posted by someone here http://php.net/manual/en/class.throwable.php 
up
32
cHao
11 years ago
Note that an exception's properties are populated when the exception is *created*, not when it is thrown. Throwing the exception does not seem to modify them.
Among other things, this means:
* The exception will blame the line that created it, not the line that threw it.
* Unlike in some other languages, rethrowing an exception doesn't muck up the trace.
* A thrown exception and an unthrown one look basically identical. On my machine, the only visible difference is that a thrown exception has an `xdebug_message` property while an unthrown one doesn't. Of course, if you don't have xdebug installed, you won't even get that.
up
9
shaman_master at list dot ru
6 years ago
Note: this documentation not full, ReflectionObject::export($exception):
<?php
Object of class [ class Exception implements Throwable ] {
 - Properties [7] {
 Property [ protected $message ]
 Property [ private $string ]
 Property [ protected $code ]
 Property [ protected $file ]
 Property [ protected $line ]
 Property [ private $trace ]
 Property [ private $previous ]
 }
 - Methods [11] {
 Method [ final private method __clone ] {
 }
 Method [ public method __construct ] {
 - Parameters [3] {
 Parameter #0 [ $message ]
 Parameter #1 [ $code ]
 Parameter #2 [ $previous ]
 }
 }
 Method [ public method __wakeup ] {
 }
 Method [ final public method getMessage ] {
 }
 Method [ final public method getCode ] {
 }
 Method [ final public method getFile ] {
 }
 Method [ final public method getLine ] {
 }
 Method [ final public method getTrace ] {
 }
 Method [ final public method getPrevious ] {
 }
 Method [ final public method getTraceAsString ] {
 }
 Method [ public method __toString ] {
 }
 }
}
?>

Missed:
 Property [ private $string ]
 Property [ private $trace ]
 Property [ private $previous ]
 Method [ public method __wakeup ] {
 }
+添加备注

AltStyle によって変換されたページ (->オリジナル) /