簡體   English   中英

代碼中的“未處理異常:Java.lang.exception”

[英]"Unhandled exception: Java.lang.exception" in code

我正在使用 Microsoft Translator API 在 Android Studio 中制作翻譯器應用程序。 但是,當我嘗試將來自 Microsoft Translator API 的一些翻譯文本存儲在變量中時,出現錯誤“未處理的異常:Java.lang.exception”。

這個錯誤是什么意思,我該如何解決?

我的代碼是:

public class Text extends AppCompatActivity {
    Context context;
    Button button;
    public static String text;
    TextView textOutput = (TextView) findViewById(R.id.Result);
    EditText textInput = (EditText) findViewById(R.id.TextBar);
    public static String allTheTranslatedText;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.text_wall);
        Spinner spinner = (Spinner) findViewById(R.id.LanguagePicker);
        button = (Button) findViewById(R.id.ConfirmationButton);
        context = this;

        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
                R.array.language, android.R.layout.simple_spinner_item);

        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

        spinner.setAdapter(adapter);


        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                LayoutInflater li = LayoutInflater.from(context);
                View promptsView = li.inflate(R.layout.alertdialog, null);

                AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                        context);


                alertDialogBuilder.setView(promptsView);
                alertDialogBuilder
                        .setCancelable(false)
                        .setPositiveButton("OK",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog,int id) {

                                        Spinner spinner = (Spinner) findViewById(R.id.LanguagePicker);
                                        text = spinner.getSelectedItem().toString();
                                        String r = textInput.getText().toString();
                                        allTheTranslatedText = getTranslatedText(r); // this is the location of error.
                                    }
                                })
                        .setNegativeButton("Cancel",
                                new DialogInterface.OnClickListener() {
                                    public void onClick(DialogInterface dialog, int id) {
                                        dialog.cancel();
                                    }
                                });
                AlertDialog alertDialog = alertDialogBuilder.create();
                alertDialog.show();
            }
        });

    }
    public String getTranslatedText (String text1) throws Exception{
        Translate.setClientId("nnn333");
        Translate.setClientSecret("shoppingfor1gbatmymicrosoftdatamarket");
        String translatedText = "";
        switch (text) {
            case "English":
                translatedText = Translate.execute(text1, Language.ENGLISH); 
            case "French":
                translatedText = Translate.execute(text1, Language.FRENCH); 
            case "Spanish":
                translatedText = Translate.execute(text1, Language.SPANISH); 
            case "German":
                translatedText = Translate.execute(text1, Language.GERMAN); 
            case "Italian":
                translatedText = Translate.execute(text1, Language.ITALIAN); 
            case "Russian":
                translatedText = Translate.execute(text1, Language.RUSSIAN); 
            case "Mandarin":
                translatedText = Translate.execute(text1, Language.CHINESE_TRADITIONAL); 
            case "Korean":
                translatedText = Translate.execute(text1, Language.KOREAN); 
            case "Japanese":
                translatedText = Translate.execute(text1, Language.JAPANESE); 
        }
        return translatedText;
    }

}

您的 IDE 向您顯示此錯誤消息是為了警告您,如果您嘗試編譯,java 編譯器稍后將生成相同的錯誤。

該錯誤意味着您的onClick()方法正在調用另一個已用throws Exception聲明的方法,並且 java 要求當您執行此操作時,您必須具有捕獲異常的代碼,或者反過來聲明調用函數也用throws Exception

並且由於onClick()是一個覆蓋,您可能不允許向其添加throws Exception

因此,您可以在onClick()方法中添加try { ... } catch( Exception e ) { ... } ,或者聲明getTranslatedText()方法而不throws Exception

嘗試將您的代碼放在 try/catch 示例中

try{
yourcodegoeshere..
}
catch(Exception e){
e.printStackTrace();
}

然后在你的編譯器中我們會看到你的錯誤,我們會告訴你為什么會發生

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM