目次
PHP エラー処理メカニズム、PHP 処理メカニズム
ホームページ バックエンド開発 PHPチュートリアル PHP エラー処理メカニズム、PHP 処理メカニズム_PHP チュートリアル

PHP エラー処理メカニズム、PHP 処理メカニズム_PHP チュートリアル

Jul 13, 2016 am 09:47 AM
php エラー処理メカニズム

PHP エラー処理メカニズム、PHP 処理メカニズム

日々のプロジェクト開発プロセスでは、予期しない異常なエラーが常に発生します。これを比較的適切に処理しないと、プログラムは非常に見栄えの悪いものになります。専門的でない場合は、他の人がシステムを攻撃するための有効な情報になる可能性があります。現時点でエラー メッセージがない場合は、コードを確認するだけです。プロジェクトに何百行ものエラーがあることは、私たちにとって非常に恐ろしいことであることを最初から認識しておく必要があります。プロジェクト開発プロセス中に例外やエラーを迅速かつ正確に特定するにはどうすればよいでしょうか。この記事はエラーや例外を自分で処理していますので、皆さんと共有してお互いの学びを兼ねてメモとして残しておきたいと思います。

システムエラーハンドラー:

PHP の通常の状況では、エラーは正常に出力されますが、一部のフレームワークでは、フレームワーク自体が独自の処理メカニズムを持っているか、コード内 (通常はこれらの関数) で処理される可能性があります。設定:

1.error_reporting(); PHP のエラー報告レベルを設定し、現在のレベルを返します

エラーレポート(レポートレベル)

パラメータレベルが指定されていない場合は、現在のエラーレベルが返されます。レベルに使用できる値は次のとおりです:

64E_USER_警告致命的ではないユーザー生成の警告。プログラマーが PHP の E_STRICTE_RECOVERABLE_ERROR

価値

定数

説明

1

E_エラー

致命的なランタイムエラー。このエラーは再利用できません。スクリプトの実行が中断されました。

2

E_警告

致命的ではない実行時警告。スクリプトの実行は中断されません。

4

E_PARSE

コンパイル時間分析エラー。解析エラーはアナライザーによってのみ生成されるべきです

8

E_NOTICE

実行時通知。見つかったスクリプトはバグである可能性がありますが、スクリプトの実行時に通常どおりに発生する可能性もあります

16

E_CORE_ERROR

PHP起動時の致命的なエラー。これは PHP のコアの E_ERROR のようなものです

32

E_CORE_WARNING

PHP

起動時の警告。これは、PHPのコアのE_WARNINGのようなものです

E_COMPILE_ERROR

致命的なコンパイル時エラー。これは、Zend スクリプト エンジンを渡して E_ERROR

を生成するのと同じです

128

E_COMPILE_WARNING

致命的ではないコンパイル時の警告。 Zendスクリプトエンジン経由でE_WARNING

を生成するようなものです

256

E_USER_エラー

ユーザーが生成した致命的なエラー。PHP 関数 trigger_error() を使用してプログラマが設定したエラーに類似しています。 512

関数を使用して設定するものに似ています。

1024 E_USER_NOTICE

ユーザー生成の通知。PHP 関数を使用してプログラマが設定した通知に似ています。 2048

実行時通知。

PHP
コードの相互運用性と互換性を高めるためのコードへの変更案

4096

キャッチ可能な致命的なエラー。

E_ERROR
に似ていますが、ユーザー定義のハンドラーによってキャッチできます(

set_error_handler()
を参照)

8191

E_ALL

レベル E_STRICT を除くすべてのエラーと警告 (PHP6.0 では、E_STRICTE_ALL の一部になります)

ここで、$level が 0 の場合、エラー出力がオフになる、つまりエラーが出力されないことに注意してください。

2.set_error_handler()

定義と使用法

set_error_handler() 関数は、ユーザー定義のエラー処理関数を設定します。

この関数は、実行時にユーザー独自のエラー処理メソッドを作成するために使用されます。

この関数は古いエラー ハンドラーを返すか、失敗した場合は null を返します。

文法

set_error_handler(error_function,error_types)

パラメータ

説明

エラー関数

必須。エラーが発生したときに実行する関数を指定します。

エラーの種類

オプション。ユーザー定義エラーをどのエラー報告レベルで表示するかを指定します。デフォルトは「E_ALL」です。

ヒント: この関数を使用すると、標準の PHP エラー処理関数は完全にバイパスされ、ユーザー定義のエラー ハンドラーは必要に応じてスクリプトを終了 (die()) する必要があります。

注: スクリプトの実行前にエラーが発生した場合、その時点ではカスタム プログラムが登録されていないため、カスタム エラー ハンドラーは使用されません。

テストコードは次のとおりです:

リーリー

//上記のケースから、my_error メソッドを登録すると、システムは元のエラー処理 error_fuction() メソッドを自動的に上書きすることがわかります

上記のプログラムを実行した結果:

カスタムエラートリガー

定義と使用法

trigger_error() 関数はユーザー定義のエラー メッセージを作成します。

trigger_error() は、ユーザーが指定した条件下でエラー メッセージをトリガーするために使用されます。これは、組み込みエラー ハンドラー、または set_error_handler() 関数で作成されたユーザー定義関数とともに使用されます。

不正なエラータイプが指定された場合、この関数は false を返し、それ以外の場合は true を返します。

文法

trigger_error(error_message,error_types)

パラメータ

説明

エラーメッセージ

必須。エラーメッセージを指定します。長さ制限は

1024 文字です。

エラーの種類

可选。规定错误消息的错误类型。 可能的值:

  • E_USER_ERROR
  • E_USER_WARNING
  • E_USER_NOTICE
测试代码如下:
/**
 *
 * @param type $level
 * @param type $msg
 */
function my_error($level, $msg) {
  switch ($level) {
  case E_USER_ERROR:
    echo "ERROR:<br/>";
    break;
  case E_USER_WARNING:
    echo "WARNING:<br/>";
    break;
  case E_USER_NOTICE:
    echo "NOTICE:<br/>";
    break;
  default:
    break;
  }
  echo "错误编号:" . $level . " <br/>";
  echo "错误信息:" . $msg;
}
//注册错误处理器
set_error_handler('my_error');
if (89 > 8) {
  //调用错误触发器
  trigger_error('这是错误啊', E_USER_WARNING);
}
ログイン後にコピー

运行结果如下:

WARNING:
错误编号:512
错误信息:这是错误啊

以上所述就是本文的全部内容了,希望大家能够喜欢。

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1027497.htmlTechArticlePHP 错误处理机制,php处理机制 在日常的项目开发过程中,总是会出现一些我们意想不到的异常错误,如果我们对此没有进行相对完善的处...
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles