0
私は、ユーザーが収入を入力して税金を差し引いた後、その金額を後で参照できるようにファイルに保存する簡単なアプリケーションを作成しています。問題は、 'postTax' editTextに何かを入力しようとすると、一番下の例外がスローされるということです。私は明らかに私のロジックで何か愚かなことをやっているが、誰もが問題を見ることができますか?Androidアプリケーションが不要な例外をキャッチ
public void onClick(View v) {
// TODO Auto-generated method stub
try {
if (preTax !=null){
Double incomeAmount = Double.parseDouble(preTax.getText().toString());
incomeAmount = incomeAmount - (0.2 *incomeAmount);
Double incomeRounded = Round(incomeAmount);
Toast.makeText(v.getContext(), "Your income minus tax = "+incomeRounded, Toast.LENGTH_LONG).show();
String storeIncome = Double.toString(incomeRounded);
try{
FileOutputStream fos = openFileOutput("income", Context.MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write(storeIncome);
osw.flush();
osw.close();
} catch(Exception e){
Toast.makeText(this, "Error writing to file", Toast.LENGTH_LONG).show();
}
}
else if (postTax!=null){
Double incomeAmount = Double.parseDouble(postTax.getText().toString());
Double incomeRounded = Round(incomeAmount);
Toast.makeText(v.getContext(), "Your income is: "+ incomeRounded, Toast.LENGTH_LONG).show();
String storeIncome = Double.toString(incomeRounded);
try{
FileOutputStream fos = openFileOutput("income", Context.MODE_PRIVATE);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write(storeIncome);
osw.flush();
osw.close();
} catch(Exception e){
Toast.makeText(this, "Error writing to file", Toast.LENGTH_LONG).show();
}
}
} catch (Exception e){
Toast.makeText(v.getContext(), "Please fill in the relevant catagories", Toast.LENGTH_LONG).show();
}
Ah!あなたが正しいです。なぜこれがNumberFormatExceptionを引き起こしているのか分かりませんが、私が入力しているデータはpreTaxと同じで、例外をスローしませんか? – user650309
あなたの 'if'構造のロジックによって' preTax'変数セットがある場合、 'postTax'パーツは実行されません(これは、' EditText'への参照です)。それについて考えると、それがあなたのコードの予期せぬ/誤った動作の主な理由であるかもしれません。 – Xion