File size: 1,748 Bytes
0284885
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package Exception_Case_package;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        /*
            需求:
                键盘录入自己心仪的女朋友姓名和年龄。
                姓名的长度在 3 - 10 之间
                年龄的范围为 18 - 40岁
                超出这个范围是异常数据不能赋值,需要重新录入,一直录到正确为止。

            提示:
                需要考虑用户在键盘录入时的所有情况
                比如:录入年龄时超出范围,录入年龄时录入了abc等情况
         */

        //1、创建键盘录入的对象
        Scanner sc = new Scanner(System.in);
        //2、创建女朋友的对象
        GirlFriend gf = new GirlFriend();

        while (true) {
            try {
                //3、接收女朋友的姓名
                System.out.println("请输入你心仪的女朋友名字:");
                String name = sc.nextLine();
                gf.setName(name);

                //4、接收女朋友的年龄
                System.out.println("请输入你心仪的女朋友年龄:");
                String ageStr = sc.nextLine();
                int age = Integer.parseInt(ageStr);
                gf.setAge(age);
                //如果所有的数据都是正确的,那么跳出循环
                break;
            } catch (NumberFormatException e) {
                e.printStackTrace();

            } catch (NameFormatException e) {
                e.printStackTrace();
            } catch (AgeOutOfBoundsException e) {
                e.printStackTrace();
            }
        }

        //5、打印
        System.out.println(gf);

    }
}