53 lines
1.5 KiB
PHP
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();
|
|
}
|