例外の原因 2016/06/19
例外オブジェクトにその例外の原因となった別の例外オブジェクトを設定できる機能。
Java 2016/06/19
Exception
などのクラスのコンストラクタには例外の原因となった例外を設定できるものが多い。コンストラクタになくても例外オブジェクトをいったん生成した後にメソッドで設定できる。
Signature:
メソッドで設定できるのは、これが Java 1.4 で導入された後付の機能だからだと思われる。
Java 1.4 より前はコンストラクタで cause
を設定することができないので、そのときに作られた例外クラスに対しても cause
を設定できるようにこのメソッドがある。このメソッドの返り値は例外の例外(cause
)ではなく例外自身(this
)でメソッドチェーンのためのもの。
PHP 2015/01/26
Exception
クラスのコンストラクタの3つ目の引数に例外の原因となった例外を指定することができる。ただ、スタックトレースを出力したときに
Javaのような例外の原因となった例外のスタックトレースまでは出力されないみたい。
例外の原因となった例外を取得するには $e->getPrevious()
のように Exception::getPrevious
を呼び出す。
例外 | PHP Manual
http://php.net/manual/ja/language.exceptions.php
例外を拡張する | PHP Manual
http://php.net/manual/ja/language.exceptions.extending.php
Exception::getPrevious
| PHP Manual
http://php.net/manual/ja/exception.getprevious.php