我正在与团队一起编程服务。该服务接收文件作为字节数组并返回响应。我们期待一种特定类型的文件(PDF,WORD,EXCEL,TXT等)
我们正在讨论如果文件被破坏或无效(例如0字节的PDF文件)抛出什么类型的异常。
我们正在使用gRPC作为通信协议,所以我在想一个无效的参数状态代码,但是一些同事不同意我并建议使用未知状态代码。
哪些方案允许我使用无效参数状态代码?
当你不知道发生了什么样的故障时,应该保留未知的情况;这通常发生在将错误从一种类型转换为另一种类型时,并且不清楚原始错误隐含的是什么。
INVALID_ARGUMENT's documentation:
// The client specified an invalid argument. Note that this differs
// from `FAILED_PRECONDITION`. `INVALID_ARGUMENT` indicates arguments
// that are problematic regardless of the state of the system
// (e.g., a malformed file name).
这正是这里提出的情况,服务器不认为输入有效。