Hướng dẫn throwable php

Change language:

Submit a Pull Request Report a Bug

(PHP 7, PHP 8)

Introduction

Throwable is the base interface for any object that can be thrown via a throw statement, including Error and Exception.

Note:

PHP classes cannot implement the Throwable interface directly, and must instead extend Exception.

Interface synopsis

interface Throwable extends Stringable {

/* Methods */

public getMessage(): string

public getCode(): int

public getFile(): string

public getLine(): int

public getTrace(): array

public getTraceAsString(): string

public getPrevious(): ?Throwable

abstract public __toString(): string

/* Inherited methods */

public Stringable::__toString(): string

}

Changelog

VersionDescription
8.0.0 Throwable implements Stringable now.

Table of Contents

  • Throwable::getMessage — Gets the message
  • Throwable::getCode — Gets the exception code
  • Throwable::getFile — Gets the file in which the object was created
  • Throwable::getLine — Gets the line on which the object was instantiated
  • Throwable::getTrace — Gets the stack trace
  • Throwable::getTraceAsString — Gets the stack trace as a string
  • Throwable::getPrevious — Returns the previous Throwable
  • Throwable::__toString — Gets a string representation of the thrown object

+add a note

User Contributed Notes 2 notes

up

down

83

mlocati at gmail dot com

5 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

down

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();

+add a note