Because your Substring is wrong.
Assume your string is "a-cde".
The index of '-' is 1, the length is 5.
So your Substring command works out as
cadena.Substring(1 + 1, 5 - 1)
So the section you are trying to extract starts at index 2, and if four characters long.
Index 2 is 'c', so your are trying to collect four characters from the three remaining.
It can't do that, so you get a "bad argument" exception.