Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在ParseException中打印异常消息_Java_Android - Fatal编程技术网

Java 在ParseException中打印异常消息

Java 在ParseException中打印异常消息,java,android,Java,Android,作为课程的一部分,我正在开发一个应用程序,我有一个简单的登录/注册表单。 我正在使用ParseUser为用户注册并登录 当用户输入一个已经存在的用户名时,将显示一个Toast ParseUser user = new ParseUser(); user.setUsername(username); user.setPassword(password); user.signUpInBackground(new SignUpCallback() {

作为课程的一部分,我正在开发一个应用程序,我有一个简单的登录/注册表单。 我正在使用ParseUser为用户注册并登录

当用户输入一个已经存在的用户名时,将显示一个Toast

    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或username字段留空

日志中包含以下内容:
I/注册:失败。原因-com.parse.ParseException:java.lang.IllegalArgumentException:用户名不能丢失或为空

我只想看到错误消息
用户名不能丢失或为空
,这是第二个异常
java.lang.IllegalArgumentException的“.getMessage()”


我该怎么做呢?谢谢

我在这里看到两个主要选项:

  • 使用
    getCause()
    获取原因,并调用原因
    getMessage()
    ,而不是从顶级异常本身
  • 通过获取“Exception”子字符串的最后一个实例并丢弃之前(包括之前)的所有内容,手动格式化字符串;这可能是最后的选择,因为它增加了复杂性并降低了可读性

  • 非常感谢。这对我很有用。:)什么时候会使用第二个选项?当第一个选项不适合您的情况或导致的问题多于它解决的问题时:波赫,好吧。再次感谢你,奥斯汀!