ホームページ > バックエンド開発 > PHPの問題 > PHP のカスタム例外処理クラスとは何ですか?カスタム例外処理クラスを解決するにはどうすればよいですか?

PHP のカスタム例外処理クラスとは何ですか?カスタム例外処理クラスを解決するにはどうすればよいですか?

慕斯
リリース: 2023-03-10 19:30:01
オリジナル
1742 人が閲覧しました

前回の記事では、「PHP の例外処理とは何ですか?」について紹介しました。例外処理で try-catch を使用するにはどうすればよいですか? 》ということで、この記事では引き続き、PHPのカスタム例外処理クラスとは何なのかを紹介していきます。カスタム例外処理クラスを解決するにはどうすればよいでしょうか?一定の参考値があるので、困っている友達が参考になれば幸いです。

PHP のカスタム例外処理クラスとは何ですか?カスタム例外処理クラスを解決するにはどうすればよいですか?

カスタム例外処理クラス:

final:クラスを変更するために使用される場合、それは次のことを表します。 this クラスは継承できません。メソッドの変更に使用されている場合、このメソッドはオーバーライドできないことを意味します。

公式例外ハンドリング クラスから継承するには、メソッドを自分で追加することができます。親クラスのメソッドをオーバーライドできるかどうか。

[注意] 複数のキャッチがある場合は、上にカスタム例外クラス、下に公式例外クラスを記述します。

ネスト: 次のように作成できます。 try in try

カスタム例外処理関数 (理解)

set_exception_ handler('test') ;
ログイン後にコピー

関数を登録します。例外がスローされると、この関数によって自動的にキャッチされます。 , = この関数にはパラメータが 1 つあります、パラメータは例外オブジェクトです。

コードを例として取り上げます。

<?php
function test($e)
{
echo $e->getMessage();
}
set_exception_handler(&#39;test&#39;);
throw new Exception( &#39;现在有异常了&#39;);
ログイン後にコピー

PHP のカスタム例外処理クラスとは何ですか?カスタム例外処理クラスを解決するにはどうすればよいですか?

例外処理クラスに関しては、引き続きコード Let を使用します。フォームについて説明します。まず、新しいファイルを作成する必要があります。クラスを定義します。公式の例外処理クラスを継承する必要があります。次に、クラス内に (関数) メソッドを定義します。 try を通じてコードを実行します。そのとき、独自の例外処理クラスを通じてそれをキャッチできます。次のようにコードを通じてそれを示します:

<?php
class MyException extends Exception
{
function demo( )
{
  echo &#39;执行第二套方案<br />&#39; ;
}
}
try {
  echo &#39;我将于茫茫人海中访我唯一灵魂之伴侣<br />&#39;;
  throw new MyException( &#39;主人出错啦&#39;);
  echo &#39;得之,我幸;不得,我命<br />&#39;;
} catch (MyException $e) {
  echo $e->getMessage();
}
?>
ログイン後にコピー

コードのデモ結果は次のとおりです:

PHP のカスタム例外処理クラスとは何ですか?カスタム例外処理クラスを解決するにはどうすればよいですか?

次は独自に定義した例外処理クラスです。実行中にエラーが発生した場合は、2 番目のメソッド セットを実行できます。

catch (MyException $e) {
  echo $e->getMessage();
  echo &#39;<hr>&#39;;
  $e->demo();
}
ログイン後にコピー

コードのデモの結果は次のとおりです。 :

PHP のカスタム例外処理クラスとは何ですか?カスタム例外処理クラスを解決するにはどうすればよいですか?

これは私たち自身で定義した例外処理クラスです;

今のコードをコピーして、どのキャッチが例外をキャッチできるかを調べてみましょう。コードは次のとおりです:

try {
  echo &#39;我将于茫茫人海中访我唯一灵魂之伴侣<br />&#39;;
  throw new MyException( &#39;主人出错啦&#39;);
  echo &#39;得之,我幸;不得,我命<br />&#39;;
} catch (MyException $e) {
  echo &#39;因为爱过,所以慈悲&#39;;
}catch (Exception $e){
  echo &#39;因为懂得,所以宽容&#39;;
}
ログイン後にコピー

コードのデモンストレーション結果は次のとおりです:

PHP のカスタム例外処理クラスとは何ですか?カスタム例外処理クラスを解決するにはどうすればよいですか?

コードから、キャプチャされた例外がカスタムであることがわかります。このオブジェクトをキャプチャする例外処理クラス MyException と Exception を組み合わせた場合 順番が入れ替わるとどうなるでしょうか?実行すると、これがまだ最初のクラスであることがわかります。

注: Exception は公式クラスであり、親クラスであり、MyException の親クラスです。例外をキャッチするときは、最初にサブクラスを配置してから、正式なクラスを作成する必要があります。

推奨される学習: php ビデオ チュートリアル

以上がPHP のカスタム例外処理クラスとは何ですか?カスタム例外処理クラスを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
php
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート