1. まず、php5 は、直接使用できる基本的な例外処理クラスを提供します。
コードをコピーする コードは次のとおりです。
class Exception
{
protected $message = '不明な例外'; // 例外情報
protected $code = 0; // 例外が発生したファイル名
protected $line; // 例外が発生したコード行番号
function __construct($message = null, $code = 0);
final function getMessage() // 例外情報を返す
final function getCode(); // 例外コードを返す例外が発生したファイル名
final function getLine(); // 例外が発生したコードの行番号を返す
final function getTrace() array
final function getTraceAsString();文字列にフォーマットされています
/* オーバーロード可能 Method*/
function __toString(); // 出力可能な文字列
?>
簡単な使用法は次のとおりです: (例外を通じてエラーメッセージをスローします)
コードをコピー
コードは次のとおりです: try {
$error = 'my error!';
throw new Exception($error)
} catch (Exception $e) {
echo $e-> ;getMessage();
}
2 、使いやすくするためにこのクラスを拡張できます
コードをコピーします
コードは次のとおりです: class MyException extends Exception
{
//メッセージを指定する必要があるプロパティにするためのコンストラクター
public function __construct($message, $code = 0) {
// カスタム コード
// すべての変数が正しく割り当てられていることを確認します
parent::__construct($message, $code );
}
// カスタム文字列の出力スタイル
public function __toString() {
return __CLASS__ . ": [{$this->message}]: {$this->message}n"; function customFunction() {
echo " このタイプの例外に対するカスタム関数n";
}
}
例外処理の基本的な考え方は、コードが try コードで呼び出されて実行されるということです。 try コード ブロックでエラーが発生した場合は、例外処理を実行できます。 Java などの一部のプログラミング言語は、特定の状況下で自動的に例外をスローします。 PHP では、例外を手動でスローする必要があります。次の方法で例外をスローできます:
Throw new Exception('message',code);
Throw キーワードは、関数ではなく言語構造ですが、値を渡す必要があります。それ。受信オブジェクトが必要です。最も単純なケースでは、組み込みの Exception クラスをインスタンス化できます。
最後に、try コードの後に、少なくとも 1 つの catch コード ブロックを指定する必要があります。複数の catch コード ブロックを try コード ブロックに関連付けることができます。各 catch ブロックが異なる種類の例外をキャッチできる場合は、複数の catch ブロックを使用するのが合理的です。たとえば、Exception クラスの例外をキャッチする場合、コードは次のとおりです
コードをコピーします
コードは次のとおりです:
Catch(Exception $e) { //例外処理
}
Catch コードによってキャプチャされたオブジェクトが例外の原因となり、オブジェクトが throw ステートメントに渡されます (throw ステートメントによってスローされます)。 Exception クラスのインスタンスを使用することは良い選択です。
Exception クラスは、次の組み込みメソッドを提供します:
Getcode() - コンストラクターに渡されたコードを返します。
GetMessage() — コンストラクターに渡されたメッセージを返します。
getFile() ——例外コードを生成したファイルのパスを返します。
getLine() ——例外を生成したコードが存在する行を返します。
注:
例外がキャッチされると、try() ブロックの後続のコードは実行を続行せず、一致する「キャッチ」コード ブロックを見つけようとします
例外がスローされると、キャッチ処理が行われない場合、「キャッチされない例外 'Exception'」エラーが報告されます
コードをコピーします
コードは次のとおりです:
function test($val){ if ($val>100 ){
throw new Exception("メッセージ: 入力した値が大きすぎます");
}
}
?>
3. 例外がスローされると、catch ステートメント ブロックが実行されます。処理される 処理する必要はありません
以下はユーザー登録機能のコードの一部です
コードをコピーしてください
コードは次のとおりです:
try{
//入力されたフォームを確認する
if(!filled_out($_POST)){
throw new Exception('フォームに入力していません。戻って入力してください')
}
/ /check メールアドレスが無効です
if(!check_email($email)){
throw new Exception('メールの形式が間違っています')
}
//密度の長さが 6 より大きいかどうかを確認します
; if(strlen($passwd<6)){
throw new Exception('密度の長さは 6 より大きい必要があります')
}
//2 つのパスワードが等しいかどうかを確認します
if($passwd!=$ passwd1){
throw new Exception('2 つのパスワードが異なります。もう一度入力してください');
}
//ユーザー名の長さが正しいかどうかを確認します
if(strlen($username)>16){
throw new Exception('ユーザー名の長さが一致しません。再入力してください');
}
} catch(Exception $e){
echo $e->getMessage(); //例外情報を出力します。
}
http://www.bkjia.com/PHPjc/325575.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/325575.html技術記事 1. まず、php5 は基本的な例外処理クラスを提供します。次のように、コピーしたコードを直接使用できます。