Получение синтаксической ошибки при попытке выполнить утверждение "Наконец" - PullRequest
1 голос
/ 03 марта 2012

Я добавил оператор "finally", но получаю синтаксическую ошибку, не знаю, как их исправить, я все перепробовал, но безрезультатно.Мой класс get - это строка из двух текстовых полей редактирования. Если флажок установлен, он сохраняет две строки в файл для последующего вызова, а затем, если в тексте редактирования ничего нет, отображается тост.Если это их первый раз, их данные (пользователь и передал их сохранены) и, если они сделали это раньше, проверив файл, они отправляются в другой класс через намерение.Ой, извините за мой плохой код, я новый программист на Java и пытаюсь сделать его максимально аккуратным.Во-вторых, если есть лучший способ кодирования, чем я, пожалуйста, измените его,

Спасибо.

Ошибки помечены кодом ^.

.:

Button send;
    EditText user;
    EditText pass;
    CheckBox staySignedIn;
    FileOutputStream Fos;
    String a;
    String b;
    String string = a;
    String string2 = b;


    String FILENAME = "userandpass";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        send = (Button) findViewById(R.id.bLogIn);
        user = (EditText) findViewById(R.id.eTuser);
        pass = (EditText) findViewById(R.id.eTpassword);
        staySignedIn = (CheckBox) findViewById(R.id.Cbstay);
        send.setOnClickListener(this);

        File file = getBaseContext().getFileStreamPath(FILENAME);
        if (file.exists())
            ;
        Intent i = new Intent(LogIn.this, ChatService.class);
        startActivity(i); ^
    }


    public void onClick(View v) {
        // TODO Auto-generated method stub
        switch (v.getId()) {
        case R.id.bLogIn:
            if (pass.length() == 0)
                Toast.makeText(this,
                        "Try to type in your username and password again!",
                        Toast.LENGTH_LONG).show();
            else if (user.length() == 0)
                Toast.makeText(this,
                        "Try to type in your username and password again!",
                        Toast.LENGTH_LONG).show();
            else {

            if (staySignedIn.isChecked()) {


                String a = user.getText().toString();
                String b = pass.getText().toString();
                File f = new File(FILENAME);
                try {
                    Fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
                    if (Fos != null) {
                    Fos.write(a.getBytes());
                    Fos.write(b.getBytes());
                    }
                    Fos.close();
                } catch (FileNotFoundException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace(); ^
                finally  {
                        String u = user.getText().toString();
                        String p = pass.getText().toString();
                        Bundle send = new Bundle();
                        send.putString("key", u);
                        send.putString("key1", p);
                        Intent c = new Intent(LogIn.this, logincheck.class);
                        c.putExtra("key", u);
                        c.putExtra("key1", p);
                        startActivity(c);
                        Toast.makeText(this, "Were signing you in!", Toast.LENGTH_LONG)
                                .show();
                        break;
                    }




            }
        }

    } ^

Ошибки

Syntax error, insert "}" to complete Block  LogIn.java  /Banana Phone/src/com/gta5news/bananaphone  line 53 Java Problem
Description Resource    Path    Location    Type
Syntax error, insert "}" to complete ClassBody  LogIn.java  /Banana Phone/src/com/gta5news/bananaphone  line 36 Java Problem
Description Resource    Path    Location    Type
Syntax error, insert "}" to complete MethodBody LogIn.java  /Banana Phone/src/com/gta5news/bananaphone  line 53 Java Problem
Description Resource    Path    Location    Type
Syntax error, insert "}" to complete MethodBody LogIn.java  /Banana Phone/src/com/gta5news/bananaphone  line 107    Java Problem

Ответы [ 3 ]

6 голосов
/ 03 марта 2012

Вы не закрываете второй оператор catch:

} catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();

}  //<=HERE ADD }
            finally  {

Общая структура:

try{
}
catch(...){  // since jdk7 you can put all your exception on one line
}
finally{
}

РЕДАКТИРОВАТЬ:

и заменить:

else {

        if (staySignedIn.isChecked()) {

от

 else if (staySignedIn.isChecked()) {
2 голосов
/ 03 марта 2012

Вы забыли закрывающую скобку.

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            finally  {

должно быть:

            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } finally  {

Поскольку вы не опубликовали весь файл Java, я не могу проверить весь код.Вы можете попробовать добавить еще одну закрывающую скобку в конце фрагмента кода, где вы отметили ^.

0 голосов
/ 25 декабря 2016

Вы не можете включать какие-либо операторы между блоком try и catch. Вы включили функцию "fos.close () в свою публичную функцию" void onClick (View v) ".

...