本帖最后由 菠萝包丶 于 2014-5-17 08:40 编辑
需求:编写一个除法程序,要求除数和被除数都从键盘中输入。如果输入的被除数是一个非数值型,如6y,
则不需要输入除数程序就自动中断并抛出NumberFormatException异常,如果输入的除数为0
则抛出ArithmeticException异常。并用finally处理最终结果。
做了很久,头疼,现在setnum函数中,怎么解决判断输入是否是非数值型,并抛出NumberFormatException异常,求大神在我的代码继续补充,修改完善,
- /**
- * 需求:编写一个除法程序,要求除数和被除数都从键盘中输入。如果输入的被除数是一个非数值型,如6y,
- * 则不需要输入除数程序就自动中断并抛出NumberFormatException异常,如果输入的除数为0
- * 则抛出ArithmeticException异常。并用finally处理最终结果。*/
- import java.util.*;
- class Chufa
- {
- double b, a;
- public void setnum()throws NumberFormatException,ArithmeticException
- {
- try
- {
- Scanner reader=new Scanner(System.in);
- System.out.println("请输入被除数:");
- a=reader.nextDouble();
- Scanner reader2=new Scanner(System.in);
- System.out.println("请输入除数");
- b=reader2.nextDouble();
- if(a==0)
- throw new ArithmeticException();
- }
- catch(NumberFormatException e)
- {
- System.out.println(e.toString());
- }
-
- }
- public void fangfa()
- {
- double end;
- end=b/a;
- System.out.println("结果为:"+end);
- }
- }
- public class NumberExceptionDemo
- {
- public static void main(String[] args) throws NumberFormatException
- {
- Chufa cc=new Chufa();
- try
- {
- cc.setnum();
- cc.fangfa();
- }
- catch(ArithmeticException e)
- {
- System.out.println(e.toString());
- }
- finally
- {
- System.out.println("Over");
- }
- }
- }
复制代码
求大神帮忙了
|