我有一个简单的程序应该触发两个异常,第二个是第一个重新抛出。但是,只抛出第一个例外。
这是我的代码:
在dao.php中
function executeSQLC($cn, $sql) {
$rs = odbc_exec($cn, $sql);
if($rs == false) {
throw new Exception("ex1: ".odbc_error());
}
return $rs;
}
在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);
}
我看到" ex1",所以我认为第一个例外,在dao,正在抛出,但是,我无法看到" ex2"并且连接永远不会回滚。
由于
答案 0 :(得分:0)
好吧,其他一些代码正在调用/搞乱$ sql变量,不确定这是什么原因,但事情似乎现在正在发挥作用。谢谢大家。