文字列ではなく、配列をphpで例外としてスローしたい。Exception クラスを拡張する独自のクラスを定義する場合、これを行うことは可能ですか?
例えばthrow new CustomException('string', $options = array('params'));
文字列ではなく、配列をphpで例外としてスローしたい。Exception クラスを拡張する独自のクラスを定義する場合、これを行うことは可能ですか?
例えばthrow new CustomException('string', $options = array('params'));
もちろん。認識し、配列プロパティを適切に使用するのは、エラー処理コード次第です。カスタム例外クラスのコンストラクターを定義して、必要なパラメーターを取得し、コンストラクター定義内から基本クラスのコンストラクターを呼び出すことができます。例:
class CustomException extends \Exception
{
private $_options;
public function __construct($message,
$code = 0,
Exception $previous = null,
$options = array('params'))
{
parent::__construct($message, $code, $previous);
$this->_options = $options;
}
public function GetOptions() { return $this->_options; }
}
次に、あなたの呼び出しコードで...
try
{
// some code that throws new CustomException($msg, $code, $previousException, $optionsArray)
}
catch (CustomException $ex)
{
$options = $ex->GetOptions();
// do something with $options[]...
}
例外クラスを拡張するためのphpドキュメントを見てください:
はい、できます。Exceptionクラスを拡張し、必要な処理を実行するために__construct()メソッドを作成する必要があります。