[英]"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.