回答編集履歴
4
補足
test
CHANGED
@@ -126,7 +126,7 @@
|
|
126
126
|
|
127
127
|
```PHP
|
128
128
|
|
129
|
-
new SomeException("hogehage");
|
129
|
+
$e = new SomeException("hogehage");
|
130
130
|
|
131
131
|
```
|
132
132
|
|
3
間違い修正
test
CHANGED
@@ -80,7 +80,7 @@
|
|
80
80
|
|
81
81
|
|
82
82
|
|
83
|
-
ですが、PDOException は RuntimeException クラスを継承し、さらに RuntimeException クラスは Exception クラスを継承しているため、結果的に 3番目の catch ブロックでキャッチされ、やはり、
|
83
|
+
ですが、PDOException は RuntimeException クラスを継承し、さらに RuntimeException クラスは Exception クラスを継承しているため、結果的に 3番目の catch ブロックでキャッチされ、やはり、pdo が表示されます。
|
84
84
|
|
85
85
|
|
86
86
|
|
2
補足
test
CHANGED
@@ -89,3 +89,59 @@
|
|
89
89
|
|
90
90
|
|
91
91
|
ですから、不正な実行結果の際に Exception(例外)を throw する関数等を try ブロック内に書いた場合、エラー処理が非常に簡単に行えるようになるわけです。
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
尚、全ての例外の基底クラス Exception クラスでは
|
96
|
+
|
97
|
+
http://php.net/manual/ja/class.exception.php
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
```PHP
|
102
|
+
|
103
|
+
/* プロパティ */
|
104
|
+
|
105
|
+
protected string $message ;
|
106
|
+
|
107
|
+
protected int $code ;
|
108
|
+
|
109
|
+
protected string $file ;
|
110
|
+
|
111
|
+
protected int $line ;
|
112
|
+
|
113
|
+
```
|
114
|
+
|
115
|
+
|
116
|
+
|
117
|
+
となっていて、そのコンストラクタは
|
118
|
+
|
119
|
+
http://php.net/manual/ja/exception.construct.php
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
なため、
|
124
|
+
|
125
|
+
|
126
|
+
|
127
|
+
```PHP
|
128
|
+
|
129
|
+
new SomeException("hogehage");
|
130
|
+
|
131
|
+
```
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
のように new すると、第一引数の文字列が、そのインスタンスに対する
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
```PHP
|
140
|
+
|
141
|
+
$e->getMessage();
|
142
|
+
|
143
|
+
```
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
という getMessage() メンバメソッドで取得できるというわけです。
|
1
誤植修正
test
CHANGED
@@ -84,7 +84,7 @@
|
|
84
84
|
|
85
85
|
|
86
86
|
|
87
|
-
このように、catch ブロックは try ブロック内で throw された Exception 毎にキャッチを行い、そ
|
87
|
+
このように、catch ブロックは try ブロック内で throw された Exception 毎にキャッチを行い、その際に new されたインスタンスを引数として取ります。
|
88
88
|
|
89
89
|
|
90
90
|
|