php gerr 统一的错误处理 v0
一般统一的错误处理机制是使用[异常],PHP也提供了异常的功能,但异常对概念及知识面都有要求,才能用好,为避免复杂,所以不使用异常作为统一的错误处理.
网站程序的错误处理,最常用的就是中断程序执行,显示给用户一个提示框,比如在控制器中使用 showmessage() 进行错误提示,所以,在控制器中直接使用 showmessage() 中提示即可.
不过,showmessage() 并不适合在类方法及函数中使用,因为有时调用者需要自己对错误进行处理,比如,错误提示使用 JS 的 alert() 弹出,而不是显示一个 html 页面,因此,要统一的是类方法中及函数中的错误处理.
保守的写法是函数返回 true 或 false,并通过比如传地址的参数传递错误信息:
bool func_name(& $error)
类方法则在类中定义一个 get_error() 之类的方法返回最后一次错误信息.
但是,当出现然"地支持错误信息的向上传递,手动模拟的向上传递代码写起来都很麻烦,不愿意写.
网站程序的错误处多层调用时,比如 调用者 -> A() -> B() -> C() ,在 C 函数中出现错误,这种方式要传递错误信息就很麻烦了:B() 要处理并兼容 C() 的错误处理,A() 要兼容 B() 的错误处理.
只有异常才很"自理,就是想在发生错误时默认就给用户一个提示并中断程序执行,并且当调用者需要自定义如何处理错误时允许调用者自定义.
所以,统一的错误处理就是默认直接对用户进行中断提示,比如数据库插入错误,又允许调用者需要的时候可以自定义处理错误,比如使用 JS 弹出错误信息.
于是,引入 gerr 类统一网站程序的错误处理:
gerr 类位于 /include/gerr.class.php,类名为 gerr,所有方法都为静态方法,无需也无法实例化.phprm.com
当方法或函数中出现错误时,调用 gerr::error() 设置错误信息并返回 false.
默认 gerr::error() 会调用 showmessge() 进行错误提示。
当调用者需要自定义处理错误时,可以调用 gerr::func_set() 设置一个自定义的错误处理函数,gerr::error() 便会调用调用者设置的错误处理函数进行错误处理.
一般来说错误处理方式都是由控制器决定的,所以 gerr::func_set() 一般是在控制器中调用。可以使用 gerr::func_reset() 把错误处理函数重置为默认函数。
在方法和函数中,可以使用 gerr::check() 检查是否已发生错误(一般发生错误都需要中断程序执行,不中断继续执行只会发生更多的错误),防止已发生的错误未被处理.
若类方法或函数使用"流程"的形式组织(比如要先 fopen 后才能 fwrite),在流程开始时调用 gerr::start() 让 gerr 进行流程的初始化,在流程成功完成后调用 gerr::end() 通知 gerr 流程已结束。
可以使用 gerr::get() 取得错误信息。
一个使用 gerr 的函数示例:
function myerr() { if (false) { gerr::error('发生错误了', __FILE__, __LINE__, __FUNCTION__); return false; } return true }
本文地址:
转载随意,但请附上文章地址:-)

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









PHP ファイル操作エラーを処理し、対応するエラー メッセージを生成する方法 PHP を使用してファイル操作を実行すると、ファイルが見つからない、権限エラーなど、さまざまなエラーが発生する可能性があります。これらのエラーによりプログラムが適切に実行されなくなる可能性があるため、ファイル操作エラーを適切に処理することが非常に重要です。この記事では、PHP ファイル操作エラーを処理する方法と、対応するエラー メッセージを生成する方法を紹介します。 1. エラー制御演算子を使用したエラー処理方法 PHP には、エラーが発生する可能性のあるステートメントを実行する前に追加できるエラー制御演算子「@」が用意されています。

PHP の構文エラーに対処する方法 はじめに: PHP プログラムを開発するとき、構文エラーが頻繁に発生します。構文エラーは、PHP 構文ルールに違反するコードによって発生し、スクリプトが正しく実行されなくなります。この記事では、PHP 構文エラーに対処するいくつかの方法を紹介し、対応するコード例を示します。エラー プロンプト機能の使用 PHP には豊富なエラー プロンプト機能が用意されており、開発プロセス中にこれらのプロンプトをオンにすると、構文エラーをタイムリーに検出して解決できます。エラーを設定するには、

PHP は、さまざまな Web アプリケーションの開発に使用できる、人気のある強力なサーバー側プログラミング言語です。他のプログラミング言語と同様に、PHP はエラーや例外が発生しやすいです。これらのエラーと例外は、プログラム エラー、サーバー エラー、ユーザー入力エラーなど、さまざまな理由によって発生する可能性があります。プログラムの実行の安定性と信頼性を確保するために、PHP はエラー処理メカニズムの完全なセットを提供します。 PHP エラー処理メカニズムの基本的な考え方は、エラーが発生すると、プログラムは実行を停止し、エラー メッセージを出力するというものです。我々はできる

PHP ファイル パス エラーを処理し、対応するエラー メッセージを生成する方法 PHP アプリケーションを開発および保守するときに、ファイル パス エラーが頻繁に発生します。存在しないファイルを参照したり、間違ったパスを指定したりすると、PHP で致命的なエラーがスローされ、アプリケーションが正常に実行できなくなります。この状況をより適切にデバッグして処理するために、次の方法で PHP ファイル パス エラーを処理し、対応するエラー メッセージを生成できます。絶対パスを使用する ファイルを参照するときは、相対パスではなく絶対パスを使用するようにしてください。

PHP エラーの解決: 未定義のクラス メソッドの呼び出し PHP 開発プロセス中に、未定義のクラス メソッドを呼び出すエラーがよく発生します。この状況は通常、不規則なコード記述または存在しないクラス メソッドによって発生します。以下では、この問題を解決する一般的な方法をいくつか説明します。クラス メソッドが存在するかどうかを確認する: 未定義のクラス メソッドが呼び出されたことを示すエラー メッセージが表示された場合は、まず、そのメソッドが対応するクラスに存在するかどうかを確認します。 Method_exists() 関数を使用すると、クラスにメソッドが存在するかどうかを確認できます。

PHP バックエンド関数開発におけるエラーを処理するにはどうすればよいですか? PHP バックエンド開発者として、私たちは開発プロセス中にさまざまなエラーに遭遇することがよくあります。適切なエラー処理は、システムの安定性とユーザー エクスペリエンスを確保する上で重要な要素です。この記事では、PHP バックエンド関数の開発方法に関するいくつかのエラー処理方法とテクニックを共有し、対応するコード例を示します。エラー報告レベルの設定 PHP には、報告されるエラーの種類を定義するために設定できるエラー報告レベル パラメーターが用意されています。 error_repo を使用する

PHP エラー処理: ベスト プラクティスと推奨事項 エラー処理は、PHP コードを作成する際の非常に重要なタスクです。エラーが正しく処理されないと、アプリケーションに脆弱性やセキュリティ上の問題が発生する可能性があります。同時に、適切なエラー処理は、コードの保守性と拡張性の向上にも役立ちます。この記事では、PHP エラー処理のベスト プラクティスと推奨事項をいくつか紹介し、いくつかのコード例を示します。例外処理の使用 PHP では、例外は実行時エラーを処理するために使用されるメカニズムです。例外を使用すると、エラーが発生する可能性があります。

PHP ソース コードのインデックス エラーを処理する方法 PHP 開発プロセス中に、「indexunknown」エラーが頻繁に発生します。このエラーは通常、配列またはオブジェクト内に存在しないインデックスにアクセスしようとすると発生します。この問題を解決するにはさまざまな方法がありますが、以下ではいくつかの方法を具体的なコード例とともに示します。方法 1: isset() 関数を使用する isset() 関数は、変数が宣言されているかどうか、および変数に値があるかどうかを確認するために使用されます。 isset() 関数を使用すると、
