2017-07-17 9 views
2

私は、コースの一部として開発しているアプリケーションの簡単なログイン/サインアップフォームを持っています。 私は、ユーザーがサインアップし、それらをログに記録するParseUserを使用しています。ParseException内の例外メッセージを出力します。

ユーザーがすでに存在しているユーザー名を入力すると、トーストが示されている...

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(); 

      } 
     } 
    }); 

を...エラーメッセージが表示されてe.getMessage()から、「サインアップに失敗しました。このユーザー名のアカウントは既に存在しています。」しかし

、ユーザーが何も入力しない場合、すなわち、いずれかのPWまたはユーザ名フィールドブランクのログでI get this in the app

と、次の葉:私が見たいと思って何I/Sign up: failed. Reason - com.parse.ParseException: java.lang.IllegalArgumentException: Username cannot be missing or blank

はわずかですエラーメッセージUsername cannot be missing or blankは、2番目の例外の ".getMessage()"です。java.lang.IllegalArgumentException

どうすればいいですか?ありがとう!

答えて

1

私はここを参照してください2つの主なオプションがあります:

  1. getCause()を使用して、原因を取得し、むしろトップレベルの例外自体からよりも、原因にgetMessage()を呼び出します。
  2. "Exception"サブストリングの最後のインスタンスを取得し、その前にすべてを破棄することによって手動でストリングをフォーマットします。複雑さが増し、読みやすさが低下するため、おそらく最後の手段として使用するべきです。
+0

ありがとうございました!これは私のために働いた。 :) 2番目のオプションはいつ使用しますか? – Akres

+0

最初のオプションが状況に応じて動作しない場合、または解決されるよりも多くの問題が発生した場合。 :P –

+0

ああ、大丈夫です。おかげさまでオースティン! – Akres

関連する問題