例外のオブジェクト状態を元に戻そうとしています。私のコードは、Eclipse上で動作している間、私はVMArgumentとして-javaagent:myDir/deuceAgent.jar
を追加しましたように::デュースstmを使用してトランザクション
public class DeuceTXTest
{
@Atomic
public void myTransactionMethod(HashMap<String, String> myHashMap)
{
myHashMap.put("s2", "two");
if(8>5)
throw new NullPointerException();
}
public static void main(String[] args){
HashMap<String, String> hashMap = new HashMap<String, String>();
hashMap.put("s1", "one");
System.out.println("Prior TX :: "+hashMap);
DeuceTXTest txTest = new DeuceTXTest();
try {
txTest.myTransactionMethod(hashMap);
} catch (Exception e) {
System.out.println(e);
}
System.out.println("Post TX :: "+hashMap);
}
}
です。期待
結果::
Prior TX :: {s1=one}
java.lang.RuntimeException
Post TX :: {s1=one}
の実績::
Prior TX :: {s1=one}
java.lang.RuntimeException
Post TX :: {s2=two, s1=one}.
また、トランザクションのロールバックまたはときに例外がスローされた上でのオブジェクトの状態を復元/元に戻す私のデュースのより良い例を提案してください。
ソースコードの書式設定に4つのインデントを使用します。 –