猿问

在一处处理重复的错误案例

我正在编写一个函数,它将多个字段的结构写入 TCP 连接。有没有办法在一个地方处理错误,比如在 Java 中捕获异常?


我的实现看起来像,


func writeFrame(frame *Frame, conn net.Conn) error {

    bo := binary.BigEndian

    if err := binary.Write(conn, bo, frame.ype); err != nil {

        return err

    }

    if err := binary.Write(conn, bo, frame.id); err != nil {

        return err

    }

    if err := binary.Write(conn, bo, frame.seq); err != nil {

        return err

    }


    if err := binary.Write(conn, bo, uint32(len(frame.arg1))); err != nil {

        return err

    }

    if err := binary.Write(conn, bo, uint32(len(frame.arg2))); err != nil {

        return err

    }

    if err := binary.Write(conn, bo, uint32(len(frame.arg3))); err != nil {

        return err

    }


    var csum uint32

    if err := binary.Write(conn, bo, csum); err != nil {

        return err

    }


    if _, err := conn.Write(frame.arg1); err != nil {

        return err

    }

    if _, err := conn.Write(frame.arg2); err != nil {

        return err

    }

    if _, err := conn.Write(frame.arg3); err != nil {

        return err

    }

    return nil

}


米琪卡哇伊
浏览 150回答 2
2回答
随时随地看视频慕课网APP

相关分类

Go
我要回答