演習課題「複数の例外を補足してみよう」
右のコードは、意図的にLengthExceptionの例外を発生させています。
しかし、補足する例外が異なるため、プログラムが強制終了してしまいます。
このプログラムにcatch節を追加して、例外を補足してください。
プログラムを実行して、想定どおり出力されれば演習課題クリアです!
期待する出力値
start
例外発生:意図的な長さ例外
end
#06:複数の例外を捕捉してみよう
ここでは、複数の種類の例外に対応する方法を学習します。tryブロック内で発生する可能性のある複数の例外に対応できるよう、プログラムを改良していきましょう。
<?php
echo "start\n";
try {
$pattern = 0;
if ($pattern == 0) {
throw new RangeException("意図的な範囲例外");
} else if ($pattern == 1) {
throw new LengthException("意図的な長さ例外");
} else {
throw new InvalidArgumentException("意図的なその他例外");
}
echo "例外を投げた後\n";
} catch (RangeException $e) {
echo "例外発生1:" . $e->getMessage() . "\n";
} catch (LengthException $e) {
echo "例外発生2:" . $e->getMessage() . "\n";
} catch (Exception $e) {
echo "例外発生3:" . $e->getMessage() . "\n";
} finally {
echo "end\n";
}
?>
PHP: 例外 - Manual
http://jp2.php.net/manual/ja/spl.exceptions.php
PHP: DateTime::__construct - Manual
http://php.net/manual/ja/datetime.construct.php
PHP: Exception - Manual
http://jp2.php.net/manual/ja/class.exception.php
PHP: 例外(exceptions) - Manual
http://php.net/manual/ja/language.exceptions.php