ホームページ  >  記事  >  PHPフレームワーク  >  thinkphp5で詳細なエラー情報を出力する方法

thinkphp5で詳細なエラー情報を出力する方法

WBOY
WBOY転載
2023-05-29 09:19:321415ブラウズ

1. デバッグ モードの設定

デバッグ モードを使用すると、ThinkPHP5 は詳細なエラー情報をページに出力できます。開発環境では、開発を容易にするためにデバッグ モードをオンにすることができます。ただし、運用環境では、機密情報の漏洩を避けるためにデバッグ モードをオフにする必要があります。

デバッグ モードをオンにする方法は次のとおりです。

  1. config ディレクトリ内の app.php ファイルを開き、debug オプションを見つけて true に設定します。 。

  2. パブリック ディレクトリにあるindex.php ファイルを開き、APP_DEBUG オプションを見つけて true に設定します。

もちろん、運用環境では、機密情報の漏洩を避けるために、これらのオプションを false に変更する必要があります。

2. 例外処理を使用する

デバッグ モードの設定に加えて、例外処理を使用して詳細なエラー情報を出力することもできます。

  1. 例外

ThinkPHP5 では、例外は重要な概念です。エラー メッセージは例外を出力することで提供されます。したがって、例外を使用して詳細なエラー情報を出力する方法を学ぶ必要があります。

ThinkPHP5 では、例外は 3 つのタイプに分類されます:

1) \think\Exception: 通常の例外クラス。通常はビジネス ロジックの制限に使用され、PHP に付属の Exception クラスを継承します。

2) \think\Exception\HttpException: HTTP 例外クラス。HTTP リクエストに関連する例外に使用されます。

3) \think\Exception\ValidateException: 検証例外クラス。バリデーターが検証に失敗したときにスローされるために使用されます。

  1. #例外をスローする

プログラムでエラーが発生した場合、例外をスローしてプログラムの実行を停止し、エラー情報を出力できます。以下は簡単なコード例です。

if(!$result) {
    throw new \Exception('错误信息');
}

このコードは、$result が false の場合に例外をスローし、エラー メッセージを出力します。

  1. 例外のキャッチ

try...catch ステートメント ブロックを使用して例外をキャッチし、エラー情報を出力することは、コードで一般的に使用される方法です。以下は簡単なコード例です:

try {
    // 可能会抛出异常的代码
} catch (\Exception $e) {
    echo $e->getMessage();
}

このコードは、try ステートメント ブロック内のコードを実行します。実行中に例外が発生した場合、catch ステートメント ブロックによってキャプチャされ、エラー メッセージが表示されます。出力。

3. ログを使用してエラー情報を記録する

上記の 2 つの方法に加えて、ログを使用してエラー情報を記録することもできます。 ThinkPHP5 のログ システムについては詳しくは紹介しませんが、ログを使用してエラー情報を記録する方法についてのみ説明します。

  1. ログの構成

config ディレクトリの app.php ファイルで、ログ構成項目を見つけ、ログ ドライバーとログ ドライバーを設定できます。ログ ストレージ パスおよびその他の関連構成。

  1. ロギング

コードでは、Log クラスを使用してログを記録できます。以下は簡単なコード例です:

use think\facade\Log;

try {
    // 可能会抛出异常的代码
} catch (\Exception $e) {
    Log::error('错误信息:'.$e->getMessage());
}

このコードは、try ステートメント ブロック内のコードを実行します。実行中に例外が発生した場合は、catch ステートメント ブロックによってキャプチャされ、Log クラスを使用して記録されます。エラー情報。

以上がthinkphp5で詳細なエラー情報を出力する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。