2016-08-07 33 views
2

Ich versuche, Eingabetextfeld in Java zur Validierung durch einen außergewöhnlichen Fehler zu schaffen, wenn der Benutzer nicht in dem Wort angegeben dh Admin nicht gebenValidieren Sie die Eingabe mit Try-Catch

 String username; 
     int phone1; 

     @Override 
     public void widgetSelected(SelectionEvent e) {   
      try 
      { 
      phone1 = Integer.parseInt(phone.getText()); 
      } 
      catch (Exception exe) 
      {   
       MessageDialog.openError(shell, "Error","Phone number has to be a number"); 
       return; 
      } 

      try 
      { 
      username = namefield.getText(); 
       if (username!= "admin") { 
        throw (new Exception()); 
       }   
      } 
      catch (Exception exe) 
      { 
       MessageDialog.openError(shell, "Error","The username must be admin"); 
       return; 
      } 


      labelresult.setText("The name entered is:"+ username); 


      labelresult2.setText("The phone entered is:"+ phone1); 

Die für Telefon funktioniert perfekt

Wie wäre es mit dem Benutzernamen? Was soll ich machen?

+0

@KarthikeyanVaithilingam, die meine Frage nicht vollständig beantwortet. da ich über Versuch versuche, zu fangen. –

+0

Sind Sie sicher, dass die Ausführung die throw-Anweisung erreicht? –

+1

Es wird generell empfohlen, keine Ausnahmen zum Steuern des Programmablaufs zu verwenden. – simonv

Antwort

2

Wie @simonv im Kommentar erwähnt, Verwenden Sie keine Ausnahme, um den Programmablauf zu steuern. Aber wenn Sie lernen, try-catch, dann können Sie dies versuchen. Verbessere auch deine if Aussage. Sie vergleichen das String-Objekt. So verwenden Sie equals() Methode wie folgt:

 try 
     { 
     username = namefield.getText(); 
      if (!"admin".equals(username)) { 
       throw new Exception("YOUR_MESSAGE_HERE"); 
      }   
     } 
     catch (Exception exe) 
     { 
      System.out.println(exe); 
      return; 
     } 
+0

Ich glaube, es sollte .equals ... nicht .equal –

+0

ja Es ist .equals() @krushiovida – Kaushal28

2

sollten Sie verwenden:

if(!username.equals("admin")){ 
//your code 
} 

Zeichenfolge vergleichen Sie equals() Methode verwenden müssen.

Wie von simon vorgeschlagen wird, es zu benutzen empfohlen:

if(!"admin".equals(username)){ 
// your code 
} 

es null sicher Auf diese Weise sein wird.

+2

Ich würde empfehlen, diese Gleichheitsprüfung rückgängig zu machen, um mögliche Nullzeiger zu vermeiden. – simonv