&引用;未处理的异常:Java.lang.exception“;编码

&引用;未处理的异常:Java.lang.exception“;编码,java,android,Java,Android,我正在Android Studio中使用Microsoft translator API制作一个翻译应用程序。但是,当我试图将来自Microsoft Translator API的一些翻译文本存储在变量中时,会出现错误“Unhandled exception:Java.lang.exception” 这个错误是什么意思?我如何修复它 我的代码是: public class Text extends AppCompatActivity { Context context; Butt

我正在Android Studio中使用Microsoft translator API制作一个翻译应用程序。但是,当我试图将来自Microsoft Translator API的一些翻译文本存储在变量中时,会出现错误“Unhandled exception: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;
    }

}
公共类文本扩展了AppCompatActivity{
语境;
按钮;
公共静态字符串文本;
TextView textOutput=(TextView)findViewById(R.id.Result);
EditText textInput=(EditText)findViewById(R.id.TextBar);
公共静态字符串所有已翻译文本;
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.text\u墙);
微调器微调器=(微调器)findViewById(R.id.LanguagePicker);
按钮=(按钮)findViewById(R.id.ConfirmationButton);
上下文=这个;
ArrayAdapter=ArrayAdapter.createFromResource(此,
R.array.language、android.R.layout.simple\u spinner\u item);
setDropDownViewResource(android.R.layout.simple\u微调器\u下拉菜单\u项);
旋转器。设置适配器(适配器);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
LayoutInflater li=LayoutInflater.from(上下文);
View promptsView=li.inflate(R.layout.alertdialog,null);
AlertDialog.Builder alertDialogBuilder=新建AlertDialog.Builder(
上下文);
alertDialogBuilder.setView(promptsView);
alertDialogBuilder
.setCancelable(错误)
.setPositiveButton(“确定”,
新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
微调器微调器=(微调器)findViewById(R.id.LanguagePicker);
text=spinner.getSelectedItem().toString();
字符串r=textInput.getText().toString();
allTheTranslatedText=getTranslatedText(r);//这是错误的位置。
}
})
.setNegativeButton(“取消”,
新建DialogInterface.OnClickListener(){
public void onClick(DialogInterface对话框,int-id){
dialog.cancel();
}
});
AlertDialog AlertDialog=alertDialogBuilder.create();
alertDialog.show();
}
});
}
公共字符串getTranslatedText(字符串text1)引发异常{
翻译为setClientId(“nnn333”);
setClientSecret(“为1GbatMyMicrosoftDataMarket购物”);
字符串translatedText=“”;
开关(文本){
案例“英语”:
translatedText=Translate.execute(text1,Language.ENGLISH);
“法语”一案:
translatedText=Translate.execute(text1,Language.FRENCH);
“西班牙语”一案:
translatedText=Translate.execute(text1,Language.西班牙语);
“德语”一案:
translatedText=Translate.execute(text1,Language.derman);
“意大利语”一案:
translatedText=Translate.execute(text1,Language.意大利语);
“俄罗斯”案:
translatedText=Translate.execute(text1,Language.俄语);
案例“普通话”:
translatedText=Translate.execute(text1,Language.CHINESE\u TRADITIONAL);
“韩国语”一案:
translatedText=Translate.execute(text1,Language.KOREAN);
“日语”一案:
translatedText=Translate.execute(text1,Language.JAPANESE);
}
返回翻译文本;
}
}

IDE将向您显示此错误消息,以警告您,如果您稍后尝试编译,java编译器将生成相同的错误

该错误意味着您的
onClick()
方法正在调用另一个已用
抛出异常
声明的方法,而java要求在执行此操作时,必须使用捕获异常的代码,或者反过来用
抛出异常
声明调用函数

由于
onClick()
是一种覆盖,因此可能不允许向其添加
throws Exception


因此,您可以在
onClick()
方法中添加
try{…}catch(异常e){…}
,或者声明您的
getTranslatedText()
方法,而不声明
抛出异常

尝试将代码放入try/catch中 范例


然后在编译器中,我们将看到您的错误,并告诉您发生错误的原因

如果您询问编译器错误,请不要尝试发布错误消息的缩写版本,而是在不进行编辑的情况下发布整个消息。它包含的文本非常重要,需要与您的问题一起完全显示。整个错误只是说:“未处理的异常:Java.lang.exception”而不是其他任何内容。当您尝试编译代码时,该消息是来自编译器,还是来自JVM,当您尝试运行代码时?。。。。。。。。。。。。。。。。在哪里?为什么有
getTranslatedText(…)
throw异常?你应该在你的代码中明确异常处理。永远不要做
catch(exception e){e.printStackTrace();}
,尤其不要建议新手做这样的事情。为什么不呢?为了调试的目的?因为错误就是这样发生的
try{
yourcodegoeshere..
}
catch(Exception e){
e.printStackTrace();
}