【典型例题】报错

本文介绍了一个简单的Java程序,用于实现用户注册功能,并通过异常处理确保输入的姓名至少包含两个字符,年龄在1到120岁之间。程序使用了Scanner类获取用户输入,并通过循环和异常捕获来校验数据的有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package _2017_01;//包名
import java.util.InputMismatchException;//以import开头的都死导包格式;
import java.util.Scanner;
/**
 * 1.定义方法完成用户注册功能,要求姓名在2个字符以上,年龄在1~120岁之间,
 * 通过异常处理方式控制用户的注册信息
 */
public class RegisterTest extends Exception {
    private String name;
    private int age;
    private Scanner input=new Scanner(System.in);
    public static void main(String[] args) {
        RegisterTest rt = new RegisterTest();
        rt.setName();
        rt.setAge();
    }
    public void setName() {
        System.out.println("请输入你的姓名:");
        while (true){
            try {
            name = input.next();
            if (name.length() <= 2) {
                throw new IndexOutOfBoundsException("名字过短");
            }
            break;
        } catch (IndexOutOfBoundsException e) {
            System.out.println(e.getMessage());
        }catch(Exception e){
            System.out.println("出现未知错误");
        }finally{
        }
    }
    }
    public void setAge() {
        System.out.println("请输入你的年龄:");
        while (true){//while true是一种全真模式,一直运行,直到有break强行停止;
            try {
            age= input.nextInt();//age的声明要放在系统之外,定义为全局变量,否则某些地方拿不到;
            if (age<1||age>120) {
                //具体的某个操作子类型,IndexOutOfBoundsException;
                throw new IndexOutOfBoundsException("年龄超出规定范围,请输入整数");
            }
            break;
        } catch (IndexOutOfBoundsException e) {
            System.out.println(e.getMessage());
        }catch(InputMismatchException e){
            System.out.println("输入类型不正确");
              input.next();//在循环中,input.next();只能够和InputMismatchException匹配,用来清除缓存,否则就无限循环;
                           //而且循环要一直执行到满足条件为止;
        }catch(Exception e){//Exception是所有错误的根类,放在最后,作为最后一重保障;
            System.out.println("出现未知错误");
                break;
        }finally{

        }
    }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陶洲川

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值