2016-10-14 5 views
-1

usDollarAmountを渡すことなくプログラムを実行するか、プログラムをキャンセルするたびに例外が発生します...ユーザー入力を受け入れるためにスイングコンポーネントを使用しています。そうでなければプログラムは正常に動作します。私のコードでjava.lang.NullPointerExceptionを処理する方法を教えてもらえますか

おかげ

THE Currency CALCULATOR 
Exception in thread "main" java.lang.NullPointerException 
at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source) 
at sun.misc.FloatingDecimal.parseDouble(Unknown Source) 
at java.lang.Double.parseDouble(Unknown Source) 
at Currency.main(Currency.java:28) 

import java.text.DecimalFormat; 

import javax.swing.JOptionPane; 

public class Currency{ 

public static void main(String[] args) 
{ 
    // declare and construct variables 


    double usDollarAmount, poundsAmount,eurosAmount,rublesAmount; 

    DecimalFormat twoDigits = new DecimalFormat("####.00"); 

    //print prompts and get input 
    System.out.println("\tTHE Currency CALCULATOR"); 

    //print prompts and get input 
    usDollarAmount = Double.parseDouble(JOptionPane.showInputDialog(null, "Enter your dollar amount:")); 


    // calculations 

    poundsAmount = 0.64 * usDollarAmount; 
    eurosAmount = 0.91 * usDollarAmount ; 
    rublesAmount = 61.73 * usDollarAmount ; 

    // output 
    JOptionPane.showMessageDialog(null, "YOUR DOLLAR AMOUNT OF " + twoDigits.format(usDollarAmount) + " is equal to " + twoDigits.format(eurosAmount) + " euros" + " ," + twoDigits.format(poundsAmount) + " pounds" + " " + " and " + twoDigits.format(rublesAmount) + " rubles" ); 


System.exit(0); 

} 

}

+0

最初に変数に入力を割り当てて、ヌルチェックを行います。 nullでない場合、構文解析を実行します –

答えて

0

まず、変数への入力を割り当て、ヌルチェックを行う...これを処理する方法を私に示してください。 nullでない場合は、構文解析を行います

String input = JOptionPane.showInputDialog(null, "Enter your dollar amount:"); 
if(input != null && !input.trim().isEmpty()) 
    usDollarAmount = Double.parseDouble(); 
+0

@Pshemoの間違い:Dは –

+0

を修正しました。 nullチェックを行う必要がありますが、ユーザーがJOptionPane.showInputDialogのキャンセルボタンをクリックしたときにスローされる例外を処理しません。ユーザーがキャンセルボタンをクリックしたときにプログラムを終了するコードを書くにはどうすればよいですか?ありがとうございました – user3561219

+0

正しい方向に私を指してくれてありがとうございました。これは私が例外を処理する方法です – user3561219

関連する問題