I have inherited a legacy app written 10+ years ago.
It uses OracleTransactions in a main method and nested within methods therein.
The main method wraps its processing in a Try-Catch for comitting or rollingback the OracleTransaction.
In the main method and the nested methods the OracleTransaction is passed as a variable and tested for errors with in their Try-Catches.
The legacy code I have inherited passes the OracleTransaction to the child methods by ref and by value inconsistently.
Shouldn't OracleTransaction always be passed by reference to be able to catch errors and bubble it up to the main method for comitting or rolling back; or is there some nuance that I am misunderstanding whereby OracleTransaction can be passed by value?