image.png

    1. package com.itheima.d5_exception_handle_runtime;
    2. import java.util.Scanner;
    3. /**
    4. * 需求:需要输入一个合法的价格为止 要求价格大于0
    5. */
    6. public class Test2 {
    7. public static void main(String[] args) {
    8. Scanner sc = new Scanner(System.in);
    9. double price = 0;
    10. while (true) {
    11. try {
    12. // 把下面代码放到try/catch异常处理代码块中去
    13. System.out.println("请您输入合法的价格");
    14. String priceStr = sc.nextLine(); // nextLine 是输入一行的数据,返回字符串类型
    15. // 转换成double类型的价格 转换valueOf()方法,括号里面接要转换数据类型的字符串
    16. // 要转换引用类型.valueOf(str) 将要转换的字符串,转换成该对应的类型
    17. price = Double.valueOf(priceStr);
    18. // 判断价格是否大于0
    19. if (price > 0){ // 如果用户瞎输入,23aaa,会报错,终止
    20. System.out.println("定价:" + price);
    21. break;
    22. }else {
    23. System.out.println("价格必须是正数");
    24. }
    25. } catch (NumberFormatException e) {
    26. e.printStackTrace(); // 这里拦截到异常会提示错误会进行下面的代码(进行while循环)
    27. System.out.println("您输入的代码有误,不规范");
    28. }
    29. }
    30. }
    31. }