Ho appena scritto una libreria dll usando vb.net. durante il test, ho ricevuto un errore che inizialmente non utilizzavo un blocco try-catch. Il codice è
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 Try
L'errore è
Index and count must refer to a location within the buffer. Parameter name: bytes
La mia domanda ora è considerata una buona pratica per generare errori da dll o restituire un messaggio di errore al client.
Il mio client si aspetta un array se byte come risposta e ho bisogno di un modo per inviare un messaggio di errore valido