検索
ホームページ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ヘンタイを無料で生成します。

ホットツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Mac版

SublimeText3 Mac版

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