回答編集履歴

1

追記

2021/03/25 10:37

投稿

fana
fana

スコア11663

test CHANGED
@@ -33,3 +33,27 @@
33
33
  }
34
34
 
35
35
  ```
36
+
37
+
38
+
39
+ ---
40
+
41
+
42
+
43
+ Personのメソッドを呼ぶ側が,あらかじめPersonのバックアップを取ってからメソッドを呼ぶ
44
+
45
+ →Personのメソッドが例外を投げてきたらバックアップを用いてPersonの中身を復元する
46
+
47
+
48
+
49
+ という話よりも,Person側の仕様を
50
+
51
+
52
+
53
+ Personのメソッドが例外を投げる際には,Personの中身はメソッドを呼ぶ前の状態に復元されている
54
+
55
+
56
+
57
+ という仕様にした方が,復元処理はいくらか楽になるように思います.
58
+
59
+ 後者側だと,各メソッドは例外を投げる時点で「何をすれば "復元" になるか」を知っているであろうから,「全て」をバックアップしなくても済むハズなので.