【 PHP 】PHP8に入門してみた 213日目 PHPの基本 ( オブジェクト指向 例外処理 その3)
PHP8技術者認定初級試験 が始まるようなので 試験に向けて (できるだけ)勉強しようと思います! 使用する書籍は独習PHP 第4版(山田 祥寛)|翔泳社の本 (shoeisha.co.jp) となります。
オブジェクト指向
スタックトレース情報
スタックトレースは、エラーが発生した際にエラーメッセージと一緒に表示される、関数呼び出しの履歴情報です。
スタックトレースは、どの関数がどの関数を呼び出したか、そしてエラーが発生した場所がどこかを示します。
以下は、PHPのスタックトレースを読み取るための基本的な手順です。
- エラーメッセージを確認します。
エラーメッセージは、どのファイルのどの行でエラーが発生したかを示します。 - スタックトレースは関数呼び出しの履歴を示します。
スタックトレースには、関数名、ファイル名、行番号が含まれます。 - スタックトレースの最初のエントリはエラーが発生した場所を示します。
このエントリは、最も深い関数呼び出しであり、トップレベルの関数呼び出しである可能性があります。 - スタックトレースの残りのエントリは
最初のエントリからの関数呼び出しの順序で表示されます。
各エントリには、呼び出し元の関数名、ファイル名、行番号が含まれます。 - スタックトレースの各エントリを調べ、どの関数がどの関数を呼び出しているかを確認します。
特定の関数が原因でエラーが発生している場合は、その関数を修正する必要があります。 - スタックトレースの最後のエントリは、PHPの処理を開始したファイルと行番号を示します。
これは、エラーの原因となった関数呼び出しが発生した場所です。
Notice: Undefined variable: x in /path/to/file.php on line 5
Warning: Division by zero in /path/to/file.php on line 5
Stack trace:
#0 /path/to/file.php(10): bar()
#1 {main}
独自の例外クラス
独自の例外クラスも作成できるようです。
ルールとして、Exception
クラスを継承する必要があるようです。
これにより、親クラスで定義されたプロパティやメソッドを使用できます。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>こんにちは!</title>
<!-- Bootstrapを有効化 -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css" />
</head>
<body>
<?php
class MyException extends Exception
{
public function __construct($message, $code = 0, Exception $previous = null)
{
parent::__construct($message, $code, $previous);
}
public function __toString()
{
return __CLASS__ . ": [{$this->code}]: {$this->message}\n";
}
}
function myFunction($arg)
{
if ($arg < 0) {
throw new MyException("Argument must be positive");
}
}
try {
myFunction(-1);
} catch (MyException $e) {
echo $e;
}
?>
</body>
</html>
メモ
例外に対する熱量が(略
ディスカッション
コメント一覧
まだ、コメントがありません