ホームページ >バックエンド開発 >PHPチュートリアル >PHP 15:例外
out_put_fns.php ファイルを読んだ後、db_fns.php ファイルを見てみましょう。コードは次のように非常に単純です:
1 2
3 function db_connect()
4 {
5 $result = new mysqli( ' localhost ' , ' bm_user ' , 'password ' , bookmarks ' );
6 if ( ! $result )
7 throw new Exception ( ' データベースサーバーに接続できませんでした ' );
8 else
9 return $result ;
11
12 ?>データベースに接続し、データベース接続を返します。 7 行目のコードは例外をスローするため、ここではデータベース接続については言及しません。したがって、最初に PHP 例外について説明し、次の章でデータベース操作について具体的に説明します。
PHP の例外メカニズムは Java や他の言語の例外メカニズムと似ています。しかし、まだ違いがあります。
コンストラクターに加えて、以下の関数も含まれています。
getCode() -- コンストラクターに渡されたコードを返します。 getMessage() -- コンストラクターに返されるメッセージ。 getFile() -- 例外を生成したコードのファイルへの完全パスを返します。 getLine() -- 例外コードが発生した行番号を返します。 getTrace() -- 例外を生成したコードとフォールバック パスを返します。これは、ASP.NET ページを作成する場合、例外が発生すると、.net がエラー情報を保存します。ファイルが配置されている場所と、すべてのフォールバック パス情報が提供されます。 2 class Exception
3 {
4 protected $message = ' 未知の例外 ' ; // 例外メッセージ
5 protected $code = 0 ; // ユーザー定義の例外コード
6 protected $file ;例外のソースファイル名
7 protected $line ; // 例外のソース行
8
9 function __construct( $message = null , $code = 0 ); // 例外のメッセージ
12 最終関数 getCode(); // 例外のコード
13 最終関数 getFile(); // ソース ファイル名
14 最終関数 getLine(); // ソース行
15 最終関数 getTrace(); backtrace()
16 Final function getTraceAsString(); // フォーマットされたトレースの文字列
17
18 /* オーバーライド可能 */
19 function __toString() // 表示用のフォーマットされた文字列
20 }
21 ?>このクラスを見てみましょう。独自の例外をカスタマイズする場合は、このクラスを継承する必要があります。他のメソッドには Final キーワードがあるため、__toString のみをオーバーライドできるようです。これは、サブクラスがそれをオーバーライドできないことを意味します。次の例を見てください:
1 2 try
3 {
4 throw new user_defined_Exception( ' ここで例外が発生します! ' , 43 );
5 }
6 catch (user_dependent_Exception $e )
7 {
8 echo $e ;
9 // echo '例外 '.$e->getCode().':'.$e->getMessage().'in'.$e->getFile( ) .'オンライン'
10 //.$e->getLine().'
'
11
12 }
13 class user_dependent_Exception extends Exception
14 {
15 public function __toString()
16 「」」」 '''''-'---------------アウトアウトアウトアウトオフアウトオフウェイバック - ' : ' . $this -> getFile() ' ' ;/strong> td? ' ; 20 }
21 }
22 ?>
例外 43:ここで例外が発生します。 .phpon line4