:빈 try try catch로 모든 것을 래핑하지 않고 스트림 데이터를 읽는 더 나은 방법? 현재이 같은 일을
try
{
while ((bytesRead = clientStream.Read(data, 0, data.Length)) != 0)
{
string message = Encoding.ASCII.GetString(data, 0, bytesRead) + Environment.NewLine;
txtLog.Invoke(c => c.AppendText(message));
}
}
catch
{
}
작동
하지만 꽤 추한.
나는 사람들이 모든 예외를 잡아 내지 말고 예외가 발생할 때 적어도 뭔가를한다고 말할 것입니다. 그러나 저는 서버 응용 프로그램을 작성하고 있습니다. 사용자가 갑자기 연결을 끊으면 문제가되지 않습니다. 그것은 기록 될 필요가 없습니다. 또한, 나는 프로그램이 충돌하는 것을 결코 원하지 않으므로 모든 예외를 실제로 잡는 것이 그렇게 나쁘다. 프로그램은 여전히 복구 할 수 있습니다. while 루프가 끝나면이 코드가 실행되고 모든 것이 정상입니다. 오른쪽?이 괜찮 그렇지 않은 경우, 갑자기 분리 사용자 또는 읽기 오류의 다른 형태를 처리 할 수있는 더 좋은 방법은 무엇 인 경우
string clientIdentifier = tcpClient.Client.RemoteEndPoint.ToString();
bool clientRemoved = clients.TryRemove(clientIdentifier);
if (clientRemoved)
{
listUsers.Invoke(c => c.Items.Remove(clientIdentifier));
}
tcpClient.Close();
정말 특정 질문이지만 궁금 이상을 요구하지?