亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 if 條件中使用異常

在 if 條件中使用異常

MM們 2023-08-09 16:09:17
我使用它是Firebase Auth為了管理我的登錄并注冊該應用程序。我想根據收到的異常添加 toast 消息。例如,如果例外是FirebaseAuthInvalidCredentialsException我想祝酒一條消息。如果是從那時FirebaseAuthUserCollisionException起我想再用一片吐司。我用類似的東西:auth.createUserWithEmailAndPassword(email, password)        .addOnCompleteListener(SignUpActivity.this, new OnCompleteListener<AuthResult>() {            @Override            public void onComplete(@NonNull Task<AuthResult> task) {                if (task.isSuccessful()) {                    LayoutInflater inflater = LayoutInflater.from( SignUpActivity.this );                    View toastview = inflater.inflate( R.layout.toast_registered, null );                    Toast toast = new Toast( SignUpActivity.this );                    toast.setView( toastview );                    toast.setGravity( Gravity.CENTER, 0, 3 );                    toast.setDuration( Toast.LENGTH_LONG );                    toast.show();                }                if (!task.isSuccessful()) {                    Toast.makeText(SignUpActivity.this, "toast1." + task.getException(),                            Toast.LENGTH_SHORT).show();                }                if (!task.isSuccessful()) {                    Toast.makeText(SignUpActivity.this, "toast2." + task.getException(),                            Toast.LENGTH_SHORT).show();                } else {                    startActivity(new Intent(SignUpActivity.this, MainActivity.class));                    finish();                }            }        });所以基本上我需要在 if 條件中添加一些東西,但我不確定什么。我看到了使用catch但我不認為是這種情況。
查看完整描述

2 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

這應該可以做到:


auth.createUserWithEmailAndPassword(email, password)

        .addOnCompleteListener(SignUpActivity.this, new OnCompleteListener<AuthResult>() {

            @Override

            public void onComplete(@NonNull Task<AuthResult> task) {

                if (task.isSuccessful()) {

                    LayoutInflater inflater = LayoutInflater.from( SignUpActivity.this );

                    View toastview = inflater.inflate( R.layout.toast_registered, null );

                    Toast toast = new Toast( SignUpActivity.this );

                    toast.setView( toastview );

                    toast.setGravity( Gravity.CENTER, 0, 3 );

                    toast.setDuration( Toast.LENGTH_LONG );

                    toast.show();

                }

                else {

                    if (task.getException() instanceof FirebaseAuthInvalidCredentialsException) {

                         Toast.makeText(SignUpActivity.this, "toast1." + task.getException(),

                         Toast.LENGTH_SHORT).show();

                    }

                    else if (task.getException() instanceof FirebaseAuthUserCollisionException) {

                         Toast.makeText(SignUpActivity.this, "toast2." + task.getException(),

                            Toast.LENGTH_SHORT).show();

                    }   

                    startActivity(new Intent(SignUpActivity.this, MainActivity.class));

                    finish();

                }

            }

        });

因此,您檢查任務是否成功,如果沒有成功,則在開始注冊活動和完成此活動之前打開錯誤類型并顯示相應的 toast。


查看完整回答
反對 回復 2023-08-09
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

首先,您只需要一個條件,例如task.isSuccessful()。


你可以這樣做:


if(task.isSuccessful()) {

    try {

        throw task.getException();

    } catch(FirebaseAuthInvalidCredentialsException e) {

        /*Toast here*/

    } catch(FirebaseAuthUserCollisionException e) {

        /*Toast here*/

    } catch(...) ...

}


...

throw task.getException();

...

你將拋出特定的異常并使用


} catch(FirebaseAuthInvalidCredentialsException e) {

    /*Toast here*/

}

您將捕獲特定的異常來處理該異常并執行您想要的操作,在您的情況下,您將編寫代碼以在 catch 語句中顯示 toast。


請記住捕獲所有異常,否則當引發未處理的異常時,您的應用程序將崩潰。


您還可以處理通用異常:


if(task.isSuccessful()) {

    try {

        throw task.getException();

    } catch(FirebaseAuthInvalidCredentialsException e) {

        /*Toast here*/

    } catch(FirebaseAuthUserCollisionException e) {

        /*Toast here*/

    } catch(Exception e) {

        /*Handle generic exception*/

    }

}

再見


查看完整回答
反對 回復 2023-08-09
  • 2 回答
  • 0 關注
  • 161 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號