2016-08-09 16 views
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"を見ることができず、接続がロールバックされることはありません。

おかげで

+0

ex1が表示されます。 'executeSQLC'は他のどこかで呼び出されていませんか? – NDM

+0

$ sqlがスコープ内にないので、Exception2が起動していない可能性があります – bumperbox

+0

'$ sql'は' bean.php'に存在しません。おそらく、スローが生命を失います。 – RiggsFolly

答えて

0

[OK]を、いくつかの他のコードは、これが原因だったことを確認していない、$のSQL変数をいじり/呼んでいたが、物事は今働いているように見えます。ありがとうございました。

関連する問題