gpt4 book ai didi

java - Double.parseDouble 如何使我的应用程序崩溃?

转载 作者:行者123 更新时间:2023-12-02 04:46:12 26 4
gpt4 key购买 nike

我正在学习 java,我在 youtube 上找到了一个很棒的教程,当尝试根据我的需要调整它时,我遇到了这个问题:

我需要将字符串转换为 double 型,进行一些数学计算,然后用结果填充 TextView。

此外,如果我可以从 firebase 数据库获取该数据(我的代码在另一个 Activity 中执行此操作),那就太好了。

现在,我放弃了从 dtb 获取数据的想法,因为每次我打开 Activity 时应用程序都会崩溃,在我添加了 try、catch、finally 之后,它确实崩溃了,但 Activity 是空白的,没有错误正在显示。

尝试逐行消除,看看问题出在哪里,但应用程序仍然崩溃,即使保留一行。

<小时/>
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText sup = findViewById(R.id.etSup);
EditText emi = findViewById(R.id.etEmi);
EditText ver = findViewById(R.id.etVer);
EditText abs = findViewById(R.id.etAbs);
TextView ResultTextView = findViewById(R.id.tvResult);
TextView Car = findViewById(R.id.tvCar);
Double dsup = Double.parseDouble(sup.getText().toString());
Double demi = Double.parseDouble(emi.getText().toString());
Double dver = Double.parseDouble(ver.getText().toString());
Double dabs = Double.parseDouble(abs.getText().toString());

Double CE = dsup * demi;
ResultTextView.setText("Total emissions are " + CE);

Double PS = dver * dabs;
Double Total = CE - PS;
Car.setText("Emission balance is " + Total);
}
});
} catch (Exception e) {
e.printStackTrace();
} finally {
}
}

}

<小时/>

没有看到错误消息

最佳答案

尝试将整个 onClick() 方法放入 try/catch block 中。当 parseDouble() 方法抛出异常时,您就不再处于 onCreate() 方法中,因为您在 onCreate() 中所做的只是注册一个监听器。 onClick() 方法稍后运行

我不确定您可能会从 parseDouble 调用中得到什么异常(可能有很多异常,也许是空指针?),但此更改将使您能够找到答案。

如果我没有很好地解释自己:

button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
// do things
} catch (Throwable e) {
e.printStackTrace();
throw e;
}
}
}

编辑:将捕获“Exception”更改为“Throwable”只是为了确保我们不会错过任何东西(作为旁注,除了调试之外,你真的不应该捕获 Throwable,这就是我抛出它的原因再次开启)

关于java - Double.parseDouble 如何使我的应用程序崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56481270/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com