0

次の例外が発生します

java.lang.NumberFormatException: 無効な int: ""

入力フィールドに何も挿入されていないときに、共有設定に値を保存しようとすると発生します。これは、入力を int として解析しているためです (図で減算を行う必要があるため)。

アプリは機能するため、これは大きな問題ではありませんが、アプリを使用している誰かが変になり、挿入したくないデータを入力せずに保存ボタンを押してみた場合に備えて.

私は次のことを試しました:

else if (obj ==null || obj.currentWeight.contains("")||obj.targetWeight.contains("")){
            AlertDialog.Builder builder = new AlertDialog.Builder(
                    MainActivity.this);
            builder.setTitle("No Data Stored");
            builder.setMessage("Please insert your target weight and your current weight and click Store Weight")
            .setPositiveButton("OK", null).show();

上記のステートメントをそのままにしておけば、私が理解できることから

else if (obj ==null){

null が挿入されると、ダイアログが開き、メッセージが表示されます。

数値形式の例外が発生します。

任意の助けをいただければ幸いです

4

1 に答える 1

2

一般的に言えば、例外処理は、この種の望ましくない動作に対する適切なアプローチです。

if( obj != null && obj.getTargetWeight() != null ) {
 try {
  int i = Integer.parseInt( obj.getTargetWeight() );
  //do something if target weight is a number
 } catch( NumberFormatException ex ) {
   //do something if target weight was not a number.
 }
}

---正確な例外タイプに編集

于 2012-04-11T10:44:18.667 に答える