2017-07-17 1 views
2

Ich habe ein einfaches Anmelde-/Anmeldeformular für eine App, die ich im Rahmen eines Kurses entwickle. Ich verwende ParseUser Benutzer registrieren und melden sie in.Nachricht der Ausnahme in einer ParseException ausgeben

Wenn der Benutzer einen Benutzernamen eingibt, der bereits vorhanden ist, einen Toast gezeigt ...

ParseUser user = new ParseUser(); 
    user.setUsername(username); 
    user.setPassword(password); 

    user.signUpInBackground(new SignUpCallback() { 
     @Override 
     public void done(ParseException e) { 

      if (e == null) { 

       Toast.makeText(MainActivity.this, "Sign up successful!", Toast.LENGTH_SHORT).show(); 

      } else { 

       Log.i("Sign up", "failed. Reason - " + e.toString()); 
       Toast.makeText(MainActivity.this, "Sign up failed. " + e.getMessage(), Toast.LENGTH_SHORT).show(); 

      } 
     } 
    }); 

... mit der Fehlermeldung von e.getMessage(), zB "Anmeldung fehlgeschlagen. Account existiert bereits für diesen Benutzernamen."

Wenn jedoch der Benutzer nichts geben, das heißt, lässt entweder die pw oder Benutzername Feld leer, I get this in the app

und folgende Unterlagen in den Protokollen: I/Sign up: failed. Reason - com.parse.ParseException: java.lang.IllegalArgumentException: Username cannot be missing or blank

Was will ich sehen, ist nur die Fehlermeldung Username cannot be missing or blank, die die ".getMessage()" der zweiten Ausnahme ist java.lang.IllegalArgumentException

Wie würde ich das tun? Vielen Dank!

Antwort

1

Es gibt zwei Hauptoptionen ich hier sehen:

  1. die Ursache Get getCause() verwenden und getMessage() auf der Ursache nennen, anstatt von der obersten Ebene Ausnahme selbst.
  2. Formatieren Sie den String manuell, indem Sie die letzte Instanz des Teilstrings "Exception" abrufen und alles vor (und einschließlich) es löschen; Dies sollte wahrscheinlich als letzte Möglichkeit verwendet werden, da dies die Komplexität erhöht und die Lesbarkeit verringert.
+0

Vielen Dank! Das hat für mich funktioniert. :) Wann würde man die zweite Option verwenden? – Akres

+0

Wenn die erste Option für Ihre Situation nicht funktioniert oder mehr Probleme verursacht, als sie löst. : P –

+0

Oh, okay dann. Nochmals vielen Dank, Austin! – Akres

Verwandte Themen