непонятное поведение switch
От: Аноним  
Дата: 02.02.11 20:55
Оценка:
есть следующий код:


            public static void GetError()
            {
                // check for errors
                int errorCode = BluetoothHelper.WSAGetLastError();
                WinsockError winsockError = new WinsockError();

                if (errorCode != 0)
                {
                    switch (errorCode)
                    {
                        case 10004:
                            winsockError.ErrorMessage =
                                BluetoothHelperMessages.errorMsg10004;
                            break;
                        case 10013:
                            winsockError.ErrorMessage =
                                BluetoothHelperMessages.errorMsg10013;
                            break;
                    }
                }

                if (errorCode != 0)
                {
                    winsockError.ErrorCode = errorCode;
                    throw new WinsockException(winsockError);
                }
            }


если например errorCode == 10004, то оно проходит нужный блок, устанавливает
winsockError.ErrorMessage =
BluetoothHelperMessages.errorMsg10004;
и break выкидывает не только из свича, а и вообще никакой код ниже (в данном случае:


                if (errorCode != 0)
                {
                    winsockError.ErrorCode = errorCode;
                    throw new WinsockException(winsockError);
                }


не выполняется. Почему?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.