ホームページ バックエンド開発 PHPチュートリアル PHP オブジェクト指向プログラミング (oop) 学習メモ (4) - 例外処理クラス Exception_PHP チュートリアル

PHP オブジェクト指向プログラミング (oop) 学習メモ (4) - 例外処理クラス Exception_PHP チュートリアル

Jul 13, 2016 am 10:28 AM
exception

使用例外

PHP5 には、他の言語と同様の例外処理モジュールが追加されています。 PHP コードで生成された例外は、throw ステートメントでスローし、catch ステートメントでキャッチできます。例外処理が必要なコードは、発生する可能性のある例外をキャッチするために try コード ブロックに配置する必要があります。各試行は少なくとも 1 つの catch ブロックに対応します。複数のキャッチを使用して、さまざまなクラスによって生成された例外をキャッチします。 try ブロックが例外をスローしなくなった場合、またはスローされた例外に一致する catch が見つからなかった場合、PHP コードは最後の catch にジャンプした後、実行を継続します。もちろん、PHP では、catch ブロック内で例外を再度スローすることができます。

事前定義された例外 例外

Exception クラスはすべての例外の基本クラスです。Exception クラスを派生することでカスタム例外を派生できます。次のリストは、例外に関する基本情報を示しています。

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

Exception {
/* 属性*/
protected string $message ; / /例外がスローされたファイル名
protected int $line ;例外がスローされたファイルの行番号
/* Method*/
public __construct ([ string $message = "" [, int $code = 0 [ , Exception $previous = NULL ]]] ) //例外コンストラクター
Final public string getMessage (void) //例外メッセージの内容を取得します
Final public Exception getPrevious (void) //例外チェーン内の前の例外を返します
Final public int getCode (void) //例外コードを取得します
Final public string getFile (void) //例外が発生したプログラムファイル名を取得
final public int getLine(void) //ファイル内の例外コードの行番号を取得
final public array getTrace (void) //例外を取得追跡情報
final public string getTraceAsString (void) //文字列型の例外追跡情報を取得
public string __toString (void) //例外オブジェクトを文字列に変換
final private void __clone (void) //例外的なクローン
}


例外を理解した後、例外クラスを拡張してカスタム例外を実装してみましょう。

コードをコピーします コードは次のとおりです:
function connectToDatabase()
{
if(!$link = mysql_connect("myhost","myuser","mypassw","mybd"))
{
throw new Exception("データベースに接続できませんでした。");
}
}
try
{
connectToDatabase();
}
catch(Exception $e)
{echo $e->getMessage( );
}


ここでは、Exception タイプの例外をスローし、この例外を catch でキャッチし、最後に「データベースに接続できませんでした。」を出力します。データベース接続が失敗した理由に関する情報も表示したい場合があります。次に、例外クラスを拡張してカスタム情報を実装します。

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

class MyException extends Exception
{
protected $ErrorInfo;
//コンストラクター内でロジックを処理し、基本クラスに情報を渡す
public function __construct($message=null,$code=0)
{
$ this&gt = '間違ったクラスのエラー情報 "" "n} connecttodatabase(){
$ e ) {
Echo $ e-& gt; getMessage ( ) . "n";
echo $e->GetErrorInfo();
}



set_Exception_handler はユーザー定義の例外処理関数を設定します

キャッチされなかった例外が発生したときに set_Exception_handler のパラメータとして呼び出される関数の名前。この関数は、set_Exception_handler() を呼び出す前に定義する必要があります。この関数は、スローされた例外オブジェクトである 1 つのパラメーターを受け入れます。これを使用すると、前述の例外ログの処理を改善できます。




コードをコピーします

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


function ExceptionLogger($Exception)
{
$file='ExceptionLog.log';
file_put_contents($fiel,$Exception->__toString() ,FILE_APPEND);
}
set_Exception_handler(ExceptionLogger);



1.3. PHP では、catch コード ブロック内で例外を再度スローできます。

コードをコピーします

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

try{ #code...}catch(Exception $e)
{
if($e->getCode() = = 999)
{
#いくつかの操作を実行します
}
else

まとめ
例外関数は非常に強力ですが、プロジェクト内で例外メカニズム、特に大量の例外ログを使用するメカニズムをむやみに悪用できるという意味ではありません。これにより、システムのオーバーヘッドが大幅に増加し、パフォーマンスが低下します。応用。エラー コードを使用すると、エラー メッセージを簡単に管理できます。エラー メッセージが複数回スローされる場合、エラー コードを使用するのが科学的な選択です。エラー コードを使用して、エラー メッセージを複数の言語で表示することもできます。

http://www.bkjia.com/PHPjc/788632.htmlwww.bkjia.comtru​​e
http://www.bkjia.com/PHPjc/788632.html

技術記事

例外の使用 PHP5 には、他の言語と同様の例外処理モジュールが追加されています。 PHP コードで生成された例外は、throw ステートメントでスローし、catch ステートメントでキャッチできます。例外処理が必要です...





このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、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)

Java での ConcurrentModificationException 例外の原因と解決策 Java での ConcurrentModificationException 例外の原因と解決策 Jun 25, 2023 am 10:33 AM

Java では、複数のスレッドがコレクション オブジェクトを同時に操作すると、ConcurrentModificationException 例外が発生することがあります。この例外は通常、要素を変更または削除するときにコレクションを走査するときに発生します。これにより、コレクションの状態が不整合になり、異常なエラーがスローされます。 。この記事では、この例外の原因と解決策について詳しく説明します。 1. 例外の原因 通常はConcurrentModificationException例外

PHP 致命的エラーの解決策: キャッチされない例外「PDOException」 PHP 致命的エラーの解決策: キャッチされない例外「PDOException」 Jun 23, 2023 pm 12:09 PM

PHP の開発では、PHP がデータベースを操作する際のエラーによって発生する「PHPFatalerror:UncaughtException'PDOException'」などのエラーが発生することがあります。このエラーが時間内に処理されないと、プログラムが中断されたり、予期しないエラーが発生したりすることがあります。では、この問題をどうやって解決すればいいのでしょうか?一般的な解決策をいくつか示します。 1. データベースパラメータを確認する まず、データベースに接続するときに渡されるパラメータを確認する必要があります。

Java で UnsupportedEncodingException に対処するにはどうすればよいですか? Java で UnsupportedEncodingException に対処するにはどうすればよいですか? Jun 25, 2023 am 08:02 AM

Java で UnsupportedEncodingException に対処するにはどうすればよいですか? Java プログラミングでは、UnsupportedEncodingException が発生する場合があります。この例外は通常、間違ったエンコード変換またはサポートされていないエンコードによって発生します。この記事では、UnsupportedEncodingException例外の原因と対処法を紹介します。サポート対象外とは何ですか?

Java で ConcurrentModificationException が発生する一般的な原因は何ですか? Java で ConcurrentModificationException が発生する一般的な原因は何ですか? Jun 25, 2023 am 11:07 AM

Java で ConcurrentModificationException が発生する一般的な原因は何ですか? Java コレクション フレームワークでイテレータを使用してコレクションを走査すると、一般的な Java 例外の 1 つである ConcurrentModificationException 例外がスローされることがあります。では、この例外の理由は何でしょうか?まず、Java コレクション フレームワークによって提供されるイテレータがステートフルであることを理解する必要があります。つまり、横断するとき、

Java での ArrayStoreException 例外の解決策 Java での ArrayStoreException 例外の解決策 Jun 25, 2023 am 08:05 AM

Java 開発では、配列の利便性とパフォーマンス上の利点から、配列を使用して一連のデータを保存することがよくあります。ただし、配列を使用するプロセスでは、いくつかの例外が発生します。一般的な例外の 1 つは ArrayStoreException です。この例外は、互換性のないデータ型を配列に格納するとスローされます。この記事では、ArrayStoreExceptionとは何なのか、なぜ発生するのか、そしてその解決方法を紹介します。 1. 到着

Java での ArrayStoreException の一般的な原因は何ですか? Java での ArrayStoreException の一般的な原因は何ですか? Jun 25, 2023 am 09:48 AM

Java プログラミングでは、配列は重要なデータ構造です。配列は 1 つの変数に複数の値を格納できます。さらに重要なのは、インデックスを使用して各値にアクセスできることです。ただし、配列を操作しているときに、いくつかの例外が発生する場合があります。そのうちの 1 つは ArrayStoreException です。この記事では、ArrayStoreException 例外の一般的な原因について説明します。 1. 型の不一致 配列の作成時に要素の型を指定する必要があります。互換性のないデータ型を配列に格納しようとすると、

Javaでは、ExceptionクラスとErrorクラスの違いは何ですか? Javaでは、ExceptionクラスとErrorクラスの違いは何ですか? Sep 09, 2023 pm 12:05 PM

Exception クラスと Error クラスはどちらも java.lang.Throwable クラスのサブクラスであり、実行時例外は処理できますが、エラーは処理できません。例外は、実行時に発生し、JVM を「あいまいな」状態にする論理エラーを表すオブジェクトです。これらの実行時エラーを表すために JVM によって自動的に作成されるオブジェクトは例外と呼ばれます。 Error は Throwable クラスのサブクラスで、合理的なアプリケーションが検出すべきではない重大な問題を示します。これらのエラーのほとんどは異常です。例外が発生した場合は、try ブロックと catch ブロックを使用して例外を処理できます。対処できないエラーが発生した場合、プログラムは終了します。例外には 2 種類あり、1 つは CheckedExce

Java の UnsupportedEncodingException 例外の解決策 Java の UnsupportedEncodingException 例外の解決策 Jun 25, 2023 am 08:48 AM

UnsupportedEncodingException は、主にエンコーディングがサポートされていないために Java で発生することがあります。テキスト データを処理する場合、多くの場合、エンコード変換を実行する必要があります。つまり、あるエンコード形式のコンテンツを別のエンコード形式のコンテンツに変換することです。エンコード変換に使用されたエンコードタイプがサポートされていない場合、UnsupportedEncodingException がスローされます。この記事では、この例外の解決策を紹介します。 1つ、

See all articles