例外処理の基本的な考え方は、コードが try コード内で呼び出されて実行されるということです。 try コードブロックでエラーが発生した場合は、例外処理を実行できます。 Java などの一部のプログラミング言語は、特定の状況下で自動的に例外をスローします。 PHP では、例外を手動でスローする必要があります。次の方法で例外をスローできます:
Throw new Exception('message',code);
Throw キーワードは例外処理メカニズムをトリガーします。これは関数ではなく言語構造ですが、渡す必要があります。価値。受信オブジェクトが必要です。最も単純なケースでは、組み込みの Exception クラスをインスタンス化できます。
最後に、try コードの後に、少なくとも 1 つの catch コード ブロックを指定する必要があります。複数の catch コード ブロックを try コード ブロックに関連付けることができます。各 catch ブロックが異なる種類の例外をキャッチできる場合は、複数の catch ブロックを使用するのが合理的です。たとえば、Exception クラスの例外をキャッチしたい場合、コードは次のとおりです
Catch(Exception $e)
{
//handingException
}
Catch コードでキャプチャされるオブジェクトは、例外を引き起こし、 throw ステートメントに渡されたオブジェクト ( throw ステートメントによってスローされた)。 Exception クラスのインスタンスを使用することは良い選択です。
Exception クラスは、次の組み込みメソッドを提供します:
Getcode()? コンストラクターに渡されたコードを返します。
GetMessage()? コンストラクターに渡されたメッセージを返します。
getFile()?例外コードを生成したファイルのパスを返します
getLine()?例外を生成したコードが配置されている行を返します。
以下はユーザー登録機能のコードの一部です
コードを見る
1 try{ 2 //check forms filled in 3 if(!filled_out($_POST)){ 4 throw new Exception('你还没有填写表单,请回去填写'); 5 } 6 //check email address not valid 7 if(!check_email($email)){ 8 throw new Exception('邮件的格式不正确'); 9 }10 //检查密度的长度是否大于611 if(strlen($passwd<6)){12 throw new Exception('密度的长度应该大于6');13 }14 //检查两次密码是否相等15 if($passwd!=$passwd1){16 throw new Exception('两次密码不一样,请重新输入');17 }18 //检查用户名的长度是否正确19 if(strlen($username)>16){20 throw new Exception('用户名的长度不符,请重新输入');21 }22 23 } catch(Exception $e){24 echo $e->getMessage(); //输出异常信息。25 }