例外処理メカニズムについて前述したように、デバッグがオンになっている場合は、例外をカスタマイズすることが最善です。デバッグがオフになっている場合は、例外が表示されます。このレッスンでは、主に例外処理のメカニズムについて説明します。
次に、Toper の Tp_Exception という例外基本クラスを定義します。ここでは単に BaseException と呼びます。次に、BaseException.php には最初にシェルフが必要です。
1
1 |
3 | public function printStack() { |
2
4 |
5 | } |
6 | public function __toString() { |
7 |
8 | } |
9 | } |
最も基本的なことは、このクラスは Exception から継承する必要があり、次に __toString メソッドと別のカスタム printStack メソッドを実装する必要があるということです。__toString メソッドを実装する理由は、new Exception( を直接スローすることが多いためです。 ) この方法で例外がスローされた場合は、__toString()メソッドを直接呼び出し、printStackメソッドを呼び出すことでスタック情報が出力されます。
まず、どちらの方法でも、デバッグ モードであるかどうかを判断する必要があります。デバッグ モードである場合は、直接出力するだけです。エラー ページに移動しますが、ジャンプする前に、例外情報をログ ファイルに書き込む必要があります。
__toString であっても printStack であっても、デバッグがオフになっている場合はデバッグ情報をログ ファイルに記録する必要があることに気づいたかもしれません。そのため、最初に補助関数を記述する必要があります:
1 | protected function _toLogFile($str) { |
2 | file_put_contents(APP_PATH . '/log',$str,FILE_APPEND); |
保護された関数 _toLogFile($str) {
3 | } |
2
}
テーブル>
3
1
protected function _outputErrorPage() {
2 | header("content-type:text/html"); |
3 | echo file_get_contents(APP_PATH . '/error.html'); |
4 | } |
コードはシンプルにする必要があるため、エラー ページとログ ファイルはプロジェクトのルート ディレクトリに直接書き込まれます。興味がある場合は、設定ファイルにパスを書き込んでみてください。難しくありません。
補助関数が記述されているため、他の 2 つの関数は非常に簡単です:
1 | public function printStack() { |
2 | if(true === C('debug')) { |
パブリック関数 printStack() {
3 | echo parent::getTraceAsString(); |
4 | } else { |
2
5 | $this->_toLogFile(parent::getTraceAsString()); |
6 | $this->_outputErrorPage(); |
7 | } |
8 | } |
echoparent::getTraceAsString();
4
1 | public function __toString() { |
2 | if(true !== C('debug')) { |
3 | $this->_toLogFile(parent::getTraceAsString()); |
4 | $this->_outputErrorPage(); |
5 | exit(); |
6 | } |
7 | return parent::__toString(); |
8 | } |
もちろん、__toString は文字列を返すので、例外がスローされると、例外情報が直接表示されます。デバッグ終了後にページに例外情報が表示されないように、ここで直接終了します。もちろん、これより良い方法はまだ思い浮かばないので、printStack を使用することをお勧めします。
私の例外クラスはアイデアを紹介するために使用されますので、何か良い方法があれば、もっとコミュニケーションを取り、お互いに学び、お互いに成長してください。
もちろん、ここでは例外処理用の基本クラスを定義するだけです。後で、例外について多くのサブクラスを記述します。実際に使用するときは、そのサブクラスが呼び出されます。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

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

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

ホットトピック









