我有一个封装与服务器的 tcp 套接字通信的类。对于发送到服务器的每条命令消息,服务器都会发回一个响应消息,该响应消息总是包含一个响应代码(OK,Fail)。使用我的课程,每个命令都可以同步或异步执行。
基本上可以发生两种类型的异常:由断开连接或其他不可恢复的错误引起的“故障”和“发送缓冲区已满”等意外异常。如果发生故障,在重新建立连接之前,任何命令都无法继续或重试或任何其他操作。在响应失败甚至异常的情况下,可以再次尝试该命令...
所以,现在我的同步命令方法返回一个可以具有以下值的枚举:OK、Fail、Fault。如果发生异常,则简单地将其引发到调用线程(在同步命令中)。对于异步命令,Result 属性枚举值可以包含一个额外的值:OK、Fail、Fault 或 Exception,并且回调可以通过命令对象的 Exception 属性访问实际的异常对象。
你怎么看这个策略?我很想根本不为同步命令引发异常,而只是在内部记录异常并返回第 4 个枚举值,因为这就是我在任何给定情况下真正对异常所做的一切......或者,我应该不使用结果代码,只是在所有情况下引发异常,甚至是错误?
谢谢。