Web サイトの完全にオープンな性質により、Web サイトは従来のソフトウェアよりも「システムが常に正常に動作しているように見える」ことを実現することを期待しているため、正しいプログラム エラー処理方法を採用することが特に重要です。理論的には、設計が十分に完璧で、開発者が十分に注意を払っていれば、プログラム エラーの可能性は 0 です。
しかし、現実はその逆で、複雑なビジネス ロジック、異なるハードウェア環境、または信頼できないユーザー入力によってプログラム エラーが発生する可能性があります。サービスがダウンしています。したがって、少し複雑なシステムでは、完全なエラー メカニズムが必要になります。
php5 より前では、例外のサポートが不足していました。複雑な開発を行う場合、「エラー値の処理+ログの記録」という比較的原始的な処理形態が採用されることが多い。
例:
コードをコピー コードは次のとおりです:
function getResult($a,$b)
{
....
致命的なエラーが発生した場合
return "error_type1"
; .. ...
}
$result = getResult($a,$b);//理論的には、getResult 関数は常に $result を正しく返すことができます
if($result=='error_type1')//ただし、いくつかの特別な場合がありますcase .$result は正常に取得できません
{
writeLog('result is empty!');// ログを記録します
die();// または他のより「フレンドリーな」処理方法
}
理論的には、「 「エラー値の処理 + ログの記録」という方法でも目的を達成できます (実際、これは真実です。php3 と php4 では、十分に複雑で成功したシステムが多数登場しています。それらはあらゆる状況を考慮しているため、問題はありません)ログを記録する必要があります)。しかし、テクノロジーは常に進歩します。言うまでもなく、開発者の大部分は、優れた人のような厳格で完璧な思考を持っていないため、「プログラムエラーにどう対処するか」という問題については、依然として真剣に考えなければなりません。
上記の「エラー処理 + ログ記録」方法には次の欠点があります:
1 エラー状況が多すぎる場合、対応するエラー処理コードを大量に追加する必要があり、プログラムの可読性が大幅に損なわれます。プログラムが「途切れ途切れ」に見えます。
2 プログラムのロジックが非常に複雑な場合 (たとえば、getResult2() 関数で getResult() を呼び出すなど、プログラムの関数呼び出しが非常に複雑である場合、またはさらに複雑なマルチレベルのネスト状況である場合)、エラー値の転送処理は疲れます。エラーを効果的に処理できるようにするには、次のことを確認する必要があります。 エラー値が損失のない方法で配信される。
そこで、この原始的なエラー処理方法を変更します。例外処理メカニズムの導入により、次のような嬉しい変更が見られるでしょう:
1 コードの可読性が大幅に向上しました。プログラムを開発するとき、論理的思考は非常に一貫性のあるものになります。「疑わしい」場所では、例外をスローするだけで済みます。対処方法としては、後から追加するのを待ってください。もちろん、プログラムの読者は中断を感じることはありません。
2 「誤差値をいかに損失なく伝達するか」という面倒で不快な問題を考える必要はありません。例外は上向きに伝播するため、関数が 2 層、3 層、またはそれ以上の深さでネストされていても問題はありません。外側の層で例外をキャッチする操作のみが必要です。
3 例外を自由にカスタマイズでき、さまざまなプログラムエラーをより適切に管理するために、機能に従って例外を分類できます。同時に、例外処理メソッドをより柔軟にカスタマイズすることもできます。たとえば、例外クラスにログ記録機能を実装します。
もちろん、例外を使用するかどうかはニーズによって異なります。 PHP の特徴の 1 つは、デプロイが速いことです。単純なロジックの小規模なプロジェクトの場合は、一般的なエラー値処理方法を使用してデプロイした方が速い場合があります。
http://www.bkjia.com/PHPjc/320193.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/320193.html技術記事 Web サイトの完全にオープンな性質により、Web サイトは従来のソフトウェアよりも「システムが常に正常に動作しているように見える」ことを実現することを望んでおり、そのため正しいプログラム エラー処理方法が採用されています...