1.测试帖链接
http://www.cnblogs.com/1033YCY/p/6596443.html
2.问题与缺陷
程序在输入非整形数值后程序崩溃
3.代码清单
package exp_1;import java.util.Scanner;public class Test { public static final int HP_PRICE=80; //手机耳机价格 public static final int SHELL_PRICE=10; //手机保护壳价格 public static final int PROTECTOR_PRICE=8; //手机保护膜价格 public static final String MSG_INPUT_ERROR="-1"; //错误信息 public static void main(String[] args){ Scanner scanner=new Scanner(System.in); while(true) { System.out.print("请输入耳机销售量:"); String hp=scanner.nextLine(); System.out.print("请输入手机壳销售量:"); String shell=scanner.nextLine(); System.out.print("请输入手机贴膜销售量:"); String protector= scanner.nextLine(); String result=commission(hp, shell, protector); System.out.println(result); } } //求销售额 public static String commission(String hp,String shell,String protector){ int hp_int; int shell_int; int protector_int; //判断输入是否为整形数值 try { hp_int=Integer.parseInt(hp); shell_int=Integer.parseInt(shell); protector_int=Integer.parseInt(protector); } catch (Exception e) { return MSG_INPUT_ERROR; } //判断输入是否合理 if(hp_int<0||shell_int<0||protector_int<0) { return MSG_INPUT_ERROR; }else { double result=hp_int*HP_PRICE+shell_int*SHELL_PRICE+protector_int*PROTECTOR_PRICE; if(result<1000) { return String.valueOf(result*0.1); //小于1000 } else if(result>=1000&&result<=1800) { return String.valueOf(1000*0.1+(result-1000)*0.15); //大于1000且小于1800 } else { return String.valueOf(1000*0.1+800*0.15+(result-1800)*0.2); //大于1800 } } }}
4.心得体会
通过try catch结构可以通过自定义异常发生后的处理行为,从而提高程序的容错性,使代码更加健壮。