質問: $text; } function show(){ printf('%s',$this->text); } } ?> ``` **** ``` show(); echo ""; } } catch(Exception $e){ echo $e->getMessage(); } ?> ``` **<表示結果>** ``` テキストは3文字以上にしてください ```
回答: 一般的に、プログラムは上から下に実行されて行きます。 条件分岐(if文など)やループ(foreachなど)では、順序が上から下でない部分が出てきますが、 プログラムのコードを見れば、どのような順序で実行が進むのか理解できます。 例外というのは、実行が行われている途中で実行に支障がある動作(例えば、メモリに存在しないアドレスへのアクセス)が発生して、プログラムに書かれているとおりの順序で実行できなくなる事態の事です。 例外が起きると、プログラムの実行はそこで中断して、発生した例外へ対処することになります。 ファイルを開く動作が、その名前のファイルが存在しない(例外の発生)ために中断する。 そこで例えば、以下のような例外への処理をするようにプログラムを用意します。(catch節に記載します) 1. そこでプログラムの実行をあきらめる。 2. ファイル名を入れなおして、存在するファイルを開く。 3. あらかじめ用意しておいたファイルを開く。 質問のコードだと、 ``` $posts[0] = new Post('hi'); // ここで例外が発生する。 // 正常な実行は、中断。例外処理に移る $posts[1] = new Post('Good evening'); ``` というように実行されるので、$posts[1] = new Post('Good evening');が実行されることが無いのです。