国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHPエラー処理例外クラス

Jun 13, 2016 pm 12:27 PM
catch email exception throw

PHP 例外処理 例外クラス

Exception (Exception) は、指定されたエラーが発生したときにスクリプトの通常のフローを変更するために使用されます。 例外とは何ですか? PHP 5 は、エラー処理に対する新しいオブジェクト指向アプローチを提供します。 例外処理は、指定されたエラー (例外) 狀況が発生したときにスクリプトの通常のフローを変更するために使用されます。この狀況を例外と呼びます。 例外がトリガーされると、通常は次のことが起こります。 現(xiàn)在のコード狀態(tài)が保存されます。 コード実行が事前定義された例外ハンドラー関數(shù)に切り替わります。 狀況に応じて、ハンドラーは、保存されたコード狀態(tài)からコード実行を再開するか、スクリプト実行を終了するか、または次から開始します。コード內(nèi)の別の場所でスクリプトの実行を続け、さまざまなエラー処理方法を示します。 例外の基本的な使用法 カスタム例外ハンドラーの作成 複數(shù)の例外 例外の再スロー 最上位の例外ハンドラーのセットアップ

例外の基本的な使用法例外がスローされると、次のコードは実行を続行できず、PHP は一致するコードの「キャッチ」ブロックを見つけようとします。 例外がキャッチされず、 set_Exception_handler() を使用して適切に処理されなかった場合、重大なエラー (致命的エラー) が発生し、「Uncaught Exception」エラー メッセージが出力されます。 例外をキャッチせずにスローしてみましょう:

1)  {  throw new Exception("Value must be 1 or below");  } return true; }//trigger exceptioncheckNum(2);?>

上記のコードは次のようなエラーを受け取ります: Fatal error: C:webfoldertest でキャッチされない例外 '例外' メッセージ '値は 1 以下でなければなりません' .php:6 スタック トレース: #0 C:webfoldertest.php(12): checkNum(28) #1 C:webfoldertest.php の 6 行目で {main} がスローされました?;乇埭工毪郡幛嗽囆?、スロー、キャッチします。上の例では、例外を処理する適切なコードを作成する必要があります。 ハンドラーの処理には以下を含める必要があります。 Try - 例外を使用する関數(shù)は「try」ブロック內(nèi)にある必要があります。例外がトリガーされない場合、コードは通常どおり実行を続行します。ただし、例外がトリガーされると、例外がスローされます。 Throw - 例外をトリガーする方法を指定します。各「スロー」は少なくとも 1 つの「キャッチ」 Catch に対応する必要があります?!弗悭氓痢攻畅`ド ブロックは例外をキャッチし、例外情報を含むオブジェクトを作成します

例外をトリガーしましょう:

1)  {  throw new Exception("Value must be 1 or below");  } return true; }//在 "try" 代碼塊中觸發(fā)異常try { checkNum(2); //If the exception is thrown, this text will not be shown echo 'If you see this, the number is 1 or below'; }//捕獲異常catch(Exception $e) { echo 'Message: ' .$e->getMessage(); }?>

上記のコードは次のようなエラーを受け取ります: メッセージ: 値は 1 以下である必要があります 説明例: 上記のコードは例外をスローし、それをキャッチします:

checkNum() 関數(shù)を作成します。數(shù)値が 1 より大きいかどうかを検出します。その場合は、例外をスローします。 「try」ブロックで checkNum() 関數(shù)を呼び出します。 checkNum() 関數(shù)で例外がスローされます。「catch」コード ブロックは例外を受け取り、例外情報を含むオブジェクト ($e) を作成します。 この例外オブジェクトから $e->getMessage() を呼び出すと、例外からのエラー メッセージが出力されます

ただし、「各スローはキャッチに対応する必要がある」という原則に従うために、トップ-level 例外は、見逃したエラーを処理するようにプロセッサを設(shè)定できます。 カスタム例外クラスの作成 カスタム例外ハンドラーの作成は非常に簡単です。 PHP で例外が発生したときに関數(shù)が呼び出される特殊なクラスを作成しただけです。このクラスは例外クラスの拡張である必要があります。

このカスタム例外クラスは、PHP の例外クラスのすべてのプロパティを継承しており、カスタム関數(shù)を追加できます。 まず、例外クラスを作成します。

getLine().' in '.$this->getFile().': '.$this->getMessage().' is not a valid E-Mail address';  return $errorMsg;  } }$email = "[email protected]..com";try { //check if  if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)  {  //throw exception if email is not valid  throw new customException($email);  } }catch (customException $e) { //display custom message echo $e->errorMessage(); }?>

この新しいクラスは、古い例外クラスのコピーに errorMessage() 関數(shù)を加えたものです。古いクラスのコピーであるため、古いクラスからプロパティとメソッドが継承され、getLine()、getFile()、getMessage() などの例外クラスのメソッドを使用できます。 説明例: 上記のコードは例外をスローし、カスタム例外クラスを通じてそれをキャッチします。customException() クラスは、古い例外クラスの拡張として作成されます。このようにして、古いクラスのすべてのプロパティとメソッドを継承します。 errorMessage() 関數(shù)を作成します。電子メール アドレスが不正な場合、関數(shù)はエラー メッセージを返します。$email 変數(shù)に不正な電子メール アドレス文字列を設(shè)定し、「try」コード ブロックを?qū)g行します。電子メール アドレスが不正であるため、例外が発生します。 「catch」コード ブロックは例外をキャッチし、エラー メッセージを表示します。

複數(shù)の例外 スクリプトに複數(shù)の例外を使用して、複數(shù)の狀況を検出できます。 複數(shù)の if..else ブロックまたは switch ブロックを使用したり、複數(shù)の例外をネストしたりできます。これらの例外は、異なる例外クラスを使用し、異なるエラー メッセージを返す可能性があります:

getLine().' in '.$this->getFile().': '.$this->getMessage().' is not a valid E-Mail address';return $errorMsg;}}$email = "[email protected]";try { //check if  if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)  {  //throw exception if email is not valid  throw new customException($email);  } //check for "example" in mail address if(strpos($email, "example") !== FALSE)  {  throw new Exception("$email is an example e-mail");  } }catch (customException $e) { echo $e->errorMessage(); }catch(Exception $e) { echo $e->getMessage(); }?>

例の説明: 上記のコードは、いずれかの條件が true でない場合、例外がスローされます:

<。 ??>customException() クラスは、古い例外クラスの拡張として作成されました。このようにして、古いクラスのすべてのプロパティとメソッドを継承します。 errorMessage() 関數(shù)を作成します。電子メール アドレスが無効な場合、この関數(shù)はエラー メッセージを返します。 コードの「try」ブロックを?qū)g行すると、最初の條件では例外はスローされません。 電子メールには文字列「example」が含まれているため、2 番目の條件により例外がトリガーされます。 「キャッチ」コード ブロックは例外をキャッチし、適切なエラー メッセージを表示します

customException がキャッチされない場合は、基本例外がしっかりとキャッチされ、例外はそこで処理されます。

重新拋出異常 有時,當(dāng)異常被拋出時,您也許希望以不同于標(biāo)準(zhǔn)的方式對它進(jìn)行處理。可以在一個 "catch" 代碼塊中再次拋出異常。 腳本應(yīng)該對用戶隱藏系統(tǒng)錯誤。對程序員來說,系統(tǒng)錯誤也許很重要,但是用戶對它們并不感興趣。為了讓用戶更容易使用,您可以再次拋出帶有對用戶比較友好的消息的異常:

getMessage().' is not a valid E-Mail address.';  return $errorMsg;  } }$email = "[email&#160;protected]";try { try  {  //check for "example" in mail address  if(strpos($email, "example") !== FALSE)   {   //throw exception if email is not valid   throw new Exception($email);   }  } catch(Exception $e)  {  //re-throw exception  throw new customException($email);  } }catch (customException $e) { //display custom message echo $e->errorMessage(); }?>

例子解釋: 上面的代碼檢測在郵件地址中是否含有字符串 "example"。如果有,則再次拋出異常:

customException() 類是作為舊的 exception 類的一個擴(kuò)展來創(chuàng)建的。這樣它就繼承了舊類的所有屬性和方法。 創(chuàng)建 errorMessage() 函數(shù)。如果 e-mail 地址不合法,則該函數(shù)返回一個錯誤消息。 把 $email 變量設(shè)置為一個有效的郵件地址,但含有字符串 "example"。 "try" 代碼塊包含另一個 "try" 代碼塊,這樣就可以再次拋出異常。 由于 e-mail 包含字符串 "example",因此觸發(fā)異常。 "catch" 捕獲到該異常,并重新拋出 "customException"。 捕獲到 "customException",并顯示一條錯誤消息。 如果在其目前的 "try" 代碼塊中異常沒有被捕獲,則它將在更高層級上查找 catch 代碼塊。 設(shè)置頂層異常處理器 (Top Level Exception Handler) set_exception_handler() 函數(shù)可設(shè)置處理所有未捕獲異常的用戶定義函數(shù)。

getMessage();}set_exception_handler('myException');throw new Exception('Uncaught Exception occurred');?>

以上代碼的輸出應(yīng)該類似這樣: Exception: Uncaught Exception occurred 在上面的代碼中,不存在 "catch" 代碼塊,而是觸發(fā)頂層的異常處理程序。應(yīng)該使用此函數(shù)來捕獲所有未被捕獲的異常。

異常的規(guī)則 需要進(jìn)行異常處理的代碼應(yīng)該放入 try 代碼塊內(nèi),以便捕獲潛在的異常。 每個 try 或 throw 代碼塊必須至少擁有一個對應(yīng)的 catch 代碼塊。 使用多個 catch 代碼塊可以捕獲不同種類的異常。 可以在 try 代碼塊內(nèi)的 catch 代碼塊中再次拋出(re-thrown)異常。

簡而言之:如果拋出了異常,就必須捕獲它。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

電子メール、smtplib、poplib、imaplib モジュールを使用して Python で電子メールを送受信する方法 電子メール、smtplib、poplib、imaplib モジュールを使用して Python で電子メールを送受信する方法 May 16, 2023 pm 11:44 PM

電子メールの流れは次のとおりです: MUA: MailUserAgent - メール ユーザー エージェント。 (つまり、Outlook に似た電子メール ソフトウェア) MTA: MailTransferAgent - メール転送エージェント。NetEase、Sina などの電子メール サービス プロバイダーです。 MDA: MailDeliverAgent - メール配信エージェント。電子メール サービス プロバイダーのサーバー sender->MUA->MTA->MTA->if

Java キーワード throw、throws、および Throwable の使用方法 Java キーワード throw、throws、および Throwable の使用方法 May 10, 2023 am 11:28 AM

Throwとは「投げる、投げる、投げる」という意味です。 Throw、Throws、および Throwable はすべて例外処理に使用されます。 1. ThrowableThrowable は、Java の例外処理ブランチの最上位の親クラスです。他のすべての例外処理の実裝は、Throwable に依存しています。公式の Java ドキュメント (Java8 バージョン) を開いて、Throwable を見つけてください。その直接のサブクラスは、Error と Exception です。エラーと例外の特徴は、スタックオーバーフローやヒープオーバーフローなど、エラー例外はプログラムで処理できず、手動によるコード修正しかできないのに対し、例外例外は事前に検出して対処できることです。と

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

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

C++ 関數(shù)の例外処理における throw ステートメントと rethrow ステートメントの役割は何ですか? C++ 関數(shù)の例外処理における throw ステートメントと rethrow ステートメントの役割は何ですか? Apr 16, 2024 am 09:42 AM

例外処理の throw ステートメントは例外をスローするために使用され、rethrow ステートメントはキャッチされた例外で同じ例外を再度スローするために使用されます。 throw ステートメントの構(gòu)文は次のとおりです: throwException_object; rethrow ステートメントの構(gòu)文は次のとおりです: rethrow; throw ステートメントと rethrow ステートメントは、エラーを呼び出し元に報告する必要がある場合にのみ使用され、例外情報は明確で有用である必要があります。

Javaのthrowとthrowsの違いは何ですか Javaのthrowとthrowsの違いは何ですか May 03, 2023 pm 02:04 PM

1. Throw は例外をスローするステートメントです。これは通常、コード ブロック內(nèi)にあります。プログラム內(nèi)で特定の論理エラーが発生すると、プログラマは特定の種類の例外を積極的にスローします。プログラマは、次の條件に基づいて例外を手動でスローすることを決定します。プログラムのロジックが異常です。 throws は、例外ステートメントを発行する可能性のあるメソッドです。 publicvoidlist(){if(head.next==null){thrownewRuntimeException("現(xiàn)在のリンクされたリストは空です");}} 2. throws はメソッド関數(shù)ヘッダーに表示され、throw は関數(shù)ヘッダーに表示されます。 publicstaticvoidsparseToFile()throws

PHPメールチュートリアル:メールを簡単に送信します PHPメールチュートリアル:メールを簡単に送信します May 19, 2025 am 12:10 AM

sendingemailswithpisspisstraightforwardusingthemail()functionoreadvancedlibrarieslikephpmailer.1)usemail()forbasicemails、settrecients、supperts、messages、and Headers.2)

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

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

C で try と catch を使用する方法 C で try と catch を使用する方法 Feb 21, 2024 am 09:03 AM

C で try および catch を使用するには、特定のコード例が必要です。C 言語には、例外処理用の組み込みの try および catch メカニズムがありません。ただし、try および catch の機(jī)能は、setjmp 関數(shù)および longjmp 関數(shù)を使用してシミュレートできます。以下では、これら 2 つの関數(shù)を例外処理に使用する方法と、対応するコード例を詳しく紹介します。まず、setjmp 関數(shù)と longjmp 関數(shù)の原理を理解する必要があります。 setjmp 関數(shù)を呼び出すと、現(xiàn)在のプログラムが保存されます。

See all articles