try catch块中的异常优先级

Sae*_*ani 3 .net c# resharper exception

我正在制作一个图书馆,以便其他人可以使用,我想让它变得无懈可击(如果这是正确的术语).在下面的代码中,我想检查byte一个字节数组的索引8.如果库的用户提供的字节长度小于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;
    }
Run Code Online (Sandbox Code Playgroud)

ReSharper说最后一个捕获块是多余的.我不明白,为什么?!这是否意味着没有机会获得最后一个捕获块?

Jim*_*Jim 6

这是多余的,因为你在最后一次捕获中没有做任何事情. throw;通常会发生什么.


JCo*_*ine 5

这是因为除了例外你没有做任何事情.

你只是"重新投掷"它.