Skip to content

Commit de231f4

Browse files
authored
Merge pull request #545 from devlights/add-panic-example
2 parents 78ae35d + aac5ba6 commit de231f4

File tree

3 files changed

+25
-0
lines changed

3 files changed

+25
-0
lines changed

examples/basic/panics/examples.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,5 @@ func NewRegister() mapping.Register {
1414
// Regist -- 登録します.
1515
func (r *register) Regist(m mapping.ExampleMapping) {
1616
m["panics_panic_and_recover"] = PanicAndRecover
17+
m["panics_panic_and_defer"] = PanicAndDefer
1718
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package panics
2+
3+
import "github.com/devlights/gomy/output"
4+
5+
// PanicAndDefer -- panicが呼ばれた場合でもdeferは処理されることを確認するサンプルです.
6+
func PanicAndDefer() error {
7+
defer output.Stdoutl("[root]", "call defer")
8+
9+
var (
10+
raise = func() {
11+
defer output.Stdoutl("[raise]", "call defer")
12+
panic("test")
13+
}
14+
proc = func() {
15+
defer output.Stdoutl("[caller]", "call defer")
16+
raise()
17+
}
18+
)
19+
20+
proc()
21+
22+
return nil
23+
}

examples/basic/panics/panic_and_recover.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ func PanicAndRecover() error {
1717
}
1818

1919
func catch() (err error) {
20+
defer output.Stdoutl("[panic]", "panic時deferは呼ばれる")
2021
defer func() {
2122
// panicはrecoverで補足できるが、取得できる値は interface{} となる
2223
if obj := recover(); obj != nil {

0 commit comments

Comments
 (0)