ホームページ php教程 php手册 PHP プログラマは「例外」の使い方も学ぶ必要があります

PHP プログラマは「例外」の使い方も学ぶ必要があります

Jun 13, 2016 pm 12:23 PM
php 使用 学ぶ 開ける 異常な 比較する 特性 プログラマー Webサイト ソフトウェア

Web サイトの完全にオープンな性質により、Web サイトは従来のソフトウェアよりも「システムが常に正常に動作しているように見える」ことを実現することを期待しているため、正しいプログラム エラー処理方法を採用することが特に重要です。理論的には、設計が十分に完璧で、開発者が十分に注意を払っていれば、プログラム エラーの可能性は 0 です。
しかし、実際はその逆で、複雑なビジネス ロジック、異なるハードウェア環境、または信頼できないユーザー入力によって、プログラムがエラーを引き起こす可能性があります。エラーが発生し、サービスがクラッシュしました。したがって、少し複雑なシステムでは、完全なエラー メカニズムが必要になります。
php5 より前では、例外のサポートが不足していました。複雑な開発を行う場合、「エラー値を処理してログを記録する」という比較的原始的な処理形式が採用されることが多いです。
例:

コードをコピー コードは次のとおりです:


function getResult($a,$b)
{
....
致命的なエラーが発生した場合
return "error_type1";
....
}
$result = getResult($ a,$b );//理論上、getResult 関数は常に $result を正しく返すことができます
if($result=='error_type1')//ただし、特殊なケースでは、$result を正常に取得できないことがあります
{
writeLog ('result is empty!');// ログを記録します
die();// または他のより「フレンドリーな」処理メソッド
}


理論的には、 " エラー値を処理する「ログ」メソッドでも、私たちの目標を達成できます (実際、これは真実です。php3 と php4 では、十分に複雑で成功したシステムが多数登場しています。それらはあらゆる状況も考慮しているため、必要はありません)任意のログを記録します)。しかし、テクノロジーは常に進歩します。言うまでもなく、開発者の大部分は、優れた人のような厳格で完璧な思考を持っていないため、「プログラムエラーにどう対処するか」という問題については、依然として真剣に考えなければなりません。
上記の「エラー処理とログ記録」方法には、次の欠点があります。
1 エラー状況が多すぎる場合、対応する多数のエラー処理コードを追加する必要があり、プログラムの可読性が大幅に損なわれます。プログラムが「途切れ途切れ」に見えます。
2 プログラムのロジックが非常に複雑な場合 (たとえば、getResult2() 関数で getResult() を呼び出すなど、プログラムの関数呼び出しが非常に複雑である場合や、さらに複雑なマルチレベルのネスト状況など) 、その後、エラー値が転送されます。処理により疲労する可能性があります。エラーを効果的に処理できるようにするには、次のことを確認する必要があります。 エラー値がロスレスな方法で配信される。
そこで、この原始的なエラー処理方法を変更します。例外処理メカニズムの導入により、次のような嬉しい変更が見られるでしょう。
1 コードの可読性が大幅に向上しました。プログラムを開発するとき、論理的思考は非常に一貫性のあるものになります。「疑わしい」場所では、例外をスローするだけで済みます。対処方法としては、後から追加するのを待ってください。もちろん、プログラムの読者は中断を感じることはありません。
2 「誤差値をいかにロスなく伝えるか」という面倒で不快な問題を考える必要がありません。例外は上向きに伝播するため、関数が 2 層、3 層、またはそれ以上の深さでネストされていても問題はありません。外側の層で例外をキャッチする操作のみが必要です。
3 例外を自由にカスタマイズでき、機能ごとに例外を分類して、さまざまなプログラムエラーをより適切に管理できます。同時に、例外処理メソッドをより柔軟にカスタマイズすることもできます。たとえば、例外クラスにログ記録機能を実装します。
もちろん、例外を使用するかどうかはニーズによって異なります。 PHP の特徴の 1 つは、デプロイが速いことです。単純なロジックの小規模なプロジェクトの場合は、一般的なエラー値処理方法を使用してデプロイした方が速い場合があります。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

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 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

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 は、

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles