panic handler + construct

This commit is contained in:
Juan Batiz-Benet 2014-07-03 23:52:58 -07:00
parent 47a6842e35
commit 3f5984c93d
2 changed files with 15 additions and 4 deletions

View File

@ -31,7 +31,15 @@ func StringToBytes(s string) ([]byte, error) {
return b, nil
}
func BytesToString(b []byte) (string, error) {
func BytesToString(b []byte) (ret string, err error) {
// panic handler, in case we try accessing bytes incorrectly.
defer func() {
if e := recover(); e != nil {
ret = ""
err = e.(error)
}
}()
s := ""
for ; len(b) > 0 ; {

View File

@ -4,7 +4,10 @@ type Multiaddr struct {
Bytes []byte
}
func NewString(s string) *Multiaddr {
m := &Multiaddr{}
return m
func NewString(s string) (*Multiaddr, error) {
b, err := StringToBytes(s)
if err != nil {
return nil, err
}
return &Multiaddr{Bytes: b}, nil
}