123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package main
- import (
- "encoding/json"
- "io/ioutil"
- "log"
- "os"
- "runtime"
- )
- //初始化配置文件
- func ReadConfig(config ...interface{}) {
- var r *os.File
- if len(config) > 1 {
- filepath, _ := config[0].(string)
- r, _ = os.Open(filepath)
- defer r.Close()
- bs, _ := ioutil.ReadAll(r)
- json.Unmarshal(bs, config[1])
- } else {
- r, _ = os.Open("./config.json")
- defer r.Close()
- bs, _ := ioutil.ReadAll(r)
- json.Unmarshal(bs, config[0])
- }
- }
- //出错拦截
- func Catch() {
- if r := recover(); r != nil {
- log.Println(r)
- for skip := 0; ; skip++ {
- _, file, line, ok := runtime.Caller(skip)
- if !ok {
- break
- }
- go log.Printf("%v,%v\n", file, line)
- }
- }
- }
- ////捕获异常
- //func Try(fun func(), handler func(interface{})) {
- // defer func() {
- // if err := recover(); err != nil {
- // for skip := 1; ; skip++ {
- // _, file, line, ok := runtime.Caller(skip)
- // if !ok {
- // break
- // }
- // go log.Printf("%v,%v\n", file, line)
- // }
- // handler(err)
- // }
- // }()
- // fun()
- //}
|