c# - try catch block 中的异常优先级

标签 c# .net exception resharper

我正在创建一个库以便其他人可以使用,我想让它防弹(如果这是正确的术语)。在下面的代码中,我想检查字节数组索引 8 处的 byte。如果库用户提供的字节长度小于 9,我想警告用户。考虑以下代码:

    try
    {
        int payloadSizeFromByteArray = Packet[8];
    }
    catch(IndexOutOfRangeException)
    {
        throw new IndexOutOfRangeException("Packet is not valid. Does noe contains byte at index 8 which stores incoming payload length.");
    }
    catch (Exception)
    {
        throw;
    }

ReSharper 表示最后一个 catch block 是多余的。我无法理解,为什么?!这是否意味着不可能到达最后一个 catch block ?

最佳答案

这是多余的,因为您在最后一个捕获中没有做任何事情。 throw; 是通常会发生的情况。

关于c# - try catch block 中的异常优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12866967/

相关文章:

c# - 我可以使用 Visual Studio Analysis Bootstrapper 在 Sonar 中分析 C# 测试项目吗?

c# - 如何从字典值中获取 ObservableCollection

c# - 为什么 switch for enum 接受隐式转换为 0 但不接受任何其他整数?

java - 运行应用程序时出错 : java. lang.exceptionininitializererror

java - 捕获并抛出异常 : What happens "under the hood"?

c# - 两个字符串变量与返回 bool 值的私有(private)字典进行比较c#

c# - 如何将 C# 控制台应用程序附加到正在运行的 Windows 服务?

.net - Portable Library .Net 中的 Sha256 哈希

c# - radiobuttonlist 奇怪的 View

c# - 为什么这个 System.InvalidOperationException 目标向后?