1
私は2つの例外を発生させる単純なプログラムを持っています.2番目の例外は最初のものの再利用です。ただし、最初の例外のみがスローされています。PHP例外が作動しない
これは私のコードです:dao.phpで
で、私は "EX1" を参照してくださいので、私は最初の例外を考えるbean.php
include("dao.php");
$conn = odbc_connect("xxx", "xxxx", "xxxx");
odbc_autocommit($conn, FALSE);
$sql ="invalid sql";
try {
executeSQLC($conn, $sql);
odbc_commit($conn);
odbc_close($conn);
} catch(Exception $e) {
odbc_rollback($conn);
throw new Exception("ex2: ".$e->getMessage(). " " .$sql);
}
で
function executeSQLC($cn, $sql) {
$rs = odbc_exec($cn, $sql);
if($rs == false) {
throw new Exception("ex1: ".odbc_error());
}
return $rs;
}
daoが投げられていますが、私は "ex2"を見ることができず、接続がロールバックされることはありません。
おかげで
ex1が表示されます。 'executeSQLC'は他のどこかで呼び出されていませんか? – NDM
$ sqlがスコープ内にないので、Exception2が起動していない可能性があります – bumperbox
'$ sql'は' bean.php'に存在しません。おそらく、スローが生命を失います。 – RiggsFolly