私は次のコードを持っていますが、次のようにtry&catchを使用できるかどうか疑問に思っています:
class fun_database implements idbInfo{
private $srvr=idbInfo::srvr_name;
private $usr=idbInfo::usrnm;
private $pass=idbInfo::psswrd;
private $db=idbInfo::db_name;
public function connct(){
$hookup = new mysqli($this->srvr, $this->usr, $this->pass, $this->db);
if ($hookup->connect_errno)
{
throw new Exception("Error Processing Request", 1);
}
}
public function sql_require_all($table_name, $table_col){
$hookup = new connct();
$result = $hookup->query("SELECT $table_col FROM $table_name");
if($hookup->error()){
throw new Exception("Error Processing Request", 1);
}
return $result->num_rows;
}
}
これは、mysql への単純な接続であり、そこでクエリを実行します。上記の関数の実際の呼び出しは次のとおりです。
$conn = new fun_database();
try{
$result = $conn->sql_require_all('wordtypes', 'types');
}
catch(Exception $err){
echo "Problems at:". $err->getMessage();
}
return "<option>".$result."</option>";
私が求めているのは少し理論です。ほとんどの場合、このコードは機能していません (まだテストしていません)。1 つの「try」で 2 つの例外を「キャッチ」できるかどうかを知りたいだけです (ご覧のとおり、最初の「throw」は fun_database の 2 番目のメソッドにあり、2 番目の「throw」は最初のメソッドにあります。 2 番目のメソッドからのみ呼び出される同じオブジェクト)。
複雑すぎて申し訳ありませんが、この try/catch の構造が機能していることをまだ理解できません。