File tree Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Expand file tree Collapse file tree 1 file changed +44
-0
lines changed Original file line number Diff line number Diff line change 62
62
end
63
63
end . should raise_error ( StandardError , "aaa" )
64
64
end
65
+
66
+ it "re-raises a previously rescued exception without overwriting the cause" do
67
+ begin
68
+ begin
69
+ begin
70
+ begin
71
+ raise "Error 1"
72
+ rescue => e1
73
+ raise "Error 2"
74
+ end
75
+ rescue => e2
76
+ raise "Error 3"
77
+ end
78
+ rescue
79
+ e2 . cause . should == e1
80
+ raise e2
81
+ end
82
+ rescue => e
83
+ e . cause . should == e1
84
+ end
85
+ end
86
+
87
+ it "re-raises a previously rescued exception with overwriting the cause when it's explicitly specified with :cause option" do
88
+ e4 = RuntimeError . new ( "Error 4" )
89
+
90
+ begin
91
+ begin
92
+ begin
93
+ begin
94
+ raise "Error 1"
95
+ rescue => e1
96
+ raise "Error 2"
97
+ end
98
+ rescue => e2
99
+ raise "Error 3"
100
+ end
101
+ rescue
102
+ e2 . cause . should == e1
103
+ raise e2 , cause : e4
104
+ end
105
+ rescue => e
106
+ e . cause . should == e4
107
+ end
108
+ end
65
109
end
66
110
67
111
describe "Kernel#raise" do
You can’t perform that action at this time.
0 commit comments