I just wrote a dll library  using vb.net. while testing, i got an error which i did not initially use a try-catch block. The code is Try            'The first four bytes are for the Command            _Command = DirectCast(BitConverter.ToInt32(data, 0), Commands)            'The next four store the length of the name            Dim nameLen As Integer = BitConverter.ToInt32(Data, 4)            'The next four store the length of the message            Dim msgLen As Integer = BitConverter.ToInt32(Data, 8)            'This check makes sure that ClientName has been passed in the array of bytes            If nameLen > 0 Then                _ClientName = Encoding.UTF8.GetString(Data, 12, nameLen)            Else                _ClientName = Nothing            End If            'This checks for a null message field            If msgLen > 0 Then                _Message = Encoding.UTF8.GetString(data, 12 + nameLen, msgLen) <-- this is the error line            Else                _Message = Nothing            End If        Catch ex As Exception            Throw        End TryThe error isIndex and count must refer to a location within the buffer. Parameter  name: bytesMy question now is would it be considered good practice to throw errors from dll  or return an error message to the client.My client is expecting an array if bytes as response and i need a way to send back valid error message 
proper exception handling (throwing/message) dll libary
.net;exception handling;vb.net;winforms