Files
php-question/Question16-Exception/Ex01.php
2026-10-21 16:40:25 +09:00

53 lines
1.5 KiB
PHP

<?php
/**
* [Ex01 例外処理基本]
*
* TODO:
* 1. 関数 divide($numerator, $denominator) を作成してください。
* - $denominator が 0 の場合、Exception を投げる。
* - 正常な場合は、$numerator / $denominator の結果を返す。
*
* 2. GETリクエストで分子(num)と分母(den)の値を受け取り、divide() を呼び出す処理を実装してください。
*
* 3. 例外が発生した場合は try-catch ブロックで捕捉し、「Error: {エラーメッセージ}」と出力すること。
*
*
*/
// 関数 divide($numerator, $denominator) を作成
function divide($numerator, $denominator)
{
// $denominator が 0 の場合、Exception を投げる。
if ($denominator === 0) {
throw new Exception("0で割ることはできません");
}
// - 正常な場合は、$numerator / $denominator の結果を返す。
else {
return $numerator / $denominator;
}
}
// GETリクエストで分子(num)と分母(den)の値を受け取り、
$numerator = $_GET['num'];
$denominator = $_GET['den'];
// 例外が発生した場合は try-catch ブロックで捕捉し、「Error: {エラーメッセージ}」と出力すること。
echo "処理開始" . "<br>";
try {
if ($numerator / $denominator === "") {
throw new Exception("結果を受け取れません");
}
// 結果でdivide() を呼び出す
$result = divide($numerator, $denominator);
echo "結果は{$result}";
} catch (Exception $e) {
echo "Error:" . $e->getMessage();
}