奇妙なことに、私は基底Exception
クラスのような同じインタフェースを持つクラスを作成しましたが、そこから拡張/派生しません。ちょうど例外のように振る舞うためにちょうど古いプレーンPHPオブジェクト。私はこれが説明されたように動作しないことを知っていたhereしかし、とにかくすべての例外の後に通常のクラスのように試してみました。PHP、例外は通常のクラスとどう違うのですか
class MyException {
/**
* properties omitted
*/
public function __construct(string $message = "",int $code)
public function getMessage(void)
//more methods
}
// somewhere in code block
throw new MyException("Fatal error");
// Fatal error: exceptions must be valid objects derived from exception base class.
例外は、通常のクラスとは異なり、私たちのコードで例外的な役割を果たす方法を説明できますか?私はこれが愚かな質問かもしれないことを知っていますが、私は例外が実際にどのように機能しているかについてもっと理解することを望んでいました。
[throwables](http://php.net/manual/en/class.throwable.php)のみがスローされます。どんなクラスでもない。それは単なる言語ルールです。 – apokryfos