phpday 2022

Throwable

(PHP 7, PHP 8)

はじめに

Throwable は、throw 文でスロー可能なあらゆるオブジェクトが実装する基底インターフェイスです。 ErrorException も、これを実装しています。

注意:

PHP のクラスが Throwable インターフェイスを直接実装することはできません。 そのかわりに、Exception を継承する必要があります。

インターフェイス概要

interface Throwable extends Stringable {
/* メソッド */
public getMessage(): string
public getCode(): int
public getFile(): string
public getLine(): int
public getTrace(): array
public getTraceAsString(): string
abstract public __toString(): string
/* 継承したメソッド */
public Stringable::__toString(): string
}

変更履歴

バージョン 説明
8.0.0 Throwable は、 Stringable を新たに実装しました。

目次

add a note add a note

User Contributed Notes 2 notes

up
83
mlocati at gmail dot com
4 years ago
I wrote a simple script that prints out the Throwable and Exception tree for every PHP version.

You can find this script here:
https://gist.github.com/mlocati/249f07b074a0de339d4d1ca980848e6a

And its output is here:
https://3v4l.org/sDMsv
up
5
thisbug at foxmail dot com
2 years ago
try {
// Code that may throw an Exception or Error.
} catch (Throwable $t) {
// Executed only in PHP 7, will not match in PHP 5.x
} catch (Exception $e) {
// Executed only in PHP 5.x, will not be reached in PHP 7
}

interface MyPackageThrowable extends Throwable {}

class MyPackageException extends Exception implements MyPackageThrowable {}

throw new MyPackageException();
To Top