|
|
|
|
|
by dragonwriter
4703 days ago
|
|
The language supports exceptions (panics). You could do something like (this is untested code): func panicBinaryWrite(w io.Writer, b binary.ByteOrder, data interface{}) {
if err := binary.Write(w, b, data); err != nil {
panic("Error in binary.Write")
}
return
}
func panicWrite(w io.Writer, data interface{}) {
if _,err := w.Write(binary.LittleEndian,data); err != nil {
panic("Error in io.Writer#Write")
}
return
}
func ignoreErrors(f func()) {
defer func() {
_ = recover()
}()
f()
return
}
func (g *Gopher) DumpBinary(w io.Writer) {
// Ignore all errors
ignoreErrors(panicBinaryWrite(w, binary.LittleEndian, int32(len(g.Name))))
ignoreErrors(panicWrite([]byte(g.Name)))
ignoreErrors(panicBinaryWrite(w, binary.LittleEndian, g.Age))
ignoreErrors(binary.Write(w, binary.LittleEndian, g.FurColor))
}
|
|