gpt4 book ai didi

c# - 解析字节数组时抛出什么异常? (C#)

转载 作者:太空狗 更新时间:2023-10-30 00:44:45 24 4
gpt4 key购买 nike

我正在解析一个字节数组,它实际上是一个在消息总线上发送的固定长度记录。如果数据无效(乱码或不符合记录规范),那么我想抛出异常。像这样:

public DomainObject ParseTheMessage(byte[] payload){
Validate(payload);//throws an exception if invalid

...do creation of domain object
}

有谁知道在这些情况下是否可以抛出一个好的标准异常,或者我应该创建自己的特定异常吗?

最佳答案

你可以只使用ArgumentException :

throw new ArgumentException("payload", "'payload' should be...");

如下 x0r 所述,MSDN recommends仅从 ArgumentException 派生,这样做可能会或可能不会给您任何附加值,这取决于定义通过参数传递的“无效”参数的内容 - 如果您可以定义可能出错的严格规则,那么您可能会从创建派生自 ArgumentException 的更精确命名的异常中受益。

或者,您可以使用 InvalidDataException具有相同类型的信息性消息,如果您有:

The exception that is thrown when a data stream is in an invalid format.

虽然指的是数据流,但可能有一些异议 - 让我们看看。

如果只是一般的“错误格式”异常,那么您确实有 FormatException - 但对于您的情况而言,这可能faaar 过于笼统(见上文),尽管可能是一个更好的异常(exception),但它确实取决于:

The exception that is thrown when the format of an argument does not meet the parameter specifications of the invoked method.

关于c# - 解析字节数组时抛出什么异常? (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7173994/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com