J2ME - не удается получить исключение ConnectionNotFoundException - PullRequest
2 голосов
/ 30 марта 2012

У меня проблема. Я сделал приложение J2ME, которое соединяет сервер через UDP. Приложение работает нормально, но я не могу получить исключение, когда сервер выключен. Поэтому я хочу, чтобы, например, если сервер не работал, приложение отображало предупреждение или что-то, что не может подключиться к серверу.

Я знаю, что могу использовать исключение ConnectionNotFoundException, но я не знаю, почему мой код там никогда не вводится.

Вот фрагмент кода, который устанавливает соединение по UDP.

public void verifyUDPMessages(String idOperacion)
  {
   // String portString = "57775";
  try
      {

          String rdo = "";

          DatagramConnection dc = (DatagramConnection) Connector
          .open("datagram://" + ipServer + ":" + portServer);

          SendUDP(dc, ""+idNextel+"^"+idUltMensaje+"^"+idOperacion);

          boolean keepBucle = true;
          int tryReceive = 0;


          while (keepBucle)
          {

            Datagram dg = dc.newDatagram(300);
            dc.receive(dg);
           // System.out.println(tryReceive);
            String incidente = new String(dg.getData(), 0, dg.getLength());



            // Have we actually received something or
            // is this just a timeout ?
            if (dg.getLength() > 0) {

                if (incidente.equals("0")) {

                       keepBucle = false;
                }

                else {

                      System.out.println(incidente);
                      inicUIconectoServlet(incidente);
                      keepBucle = false;   

                }

            }

          System.out.println(tryReceive);

            if (tryReceive == 5) {

                keepBucle = false;

            }
            else {

                tryReceive++;  
            }

          }

         // System.out.println(tryReceive);
          dc.close();
      }




      catch ( ConnectionNotFoundException cnfe)
      {
        //  Alert a = new Alert("Client", "Please run Server MIDlet first on port " + portServer,
         // null, AlertType.ERROR);
          System.out.println("error");
          cnfe.printStackTrace();
        //  a.setTimeout(Alert.FOREVER);
        //  display.setCurrent(a);
      }

      catch (IOException ioe)
      {
        ioe.printStackTrace();
      }

  }

1 Ответ

1 голос
/ 07 апреля 2012

Лучше добавить еще один блок улова

catch(Exception ex) 
{
    //Handle the exceptions 
}
...