自定义异常

1.格式:

public class XXXException extends Exception|RuntimeException{
    添加一个无参的构造方法
    添加一个有参的构造方法:添加一个有参的构造方法
    //方法内部会调用父类的异常信息构造方法,让父类来处理
}

2.注意:

  • 1.自定义异常类一般都是以Exception 结尾,说明该类是一个异常类
  • 2.自定义异常:必须继承Exception|RuntimeException
    • 继承Exception:那么自定义异常就是一个编译异常,如果方法内部抛出啦编译异常,就必须处理这个异常,要么throw,要么try…catch
    • 继承RuntimeException:那么自定义异常就是一个运行异常,无序处理,交给JVM即可

3.题目示例

  • 分析:
  • 1.使用数组保存已经注册过的用户名(数据库)
  • 2.使用Scanner获取输入佛如注册信息(前端,页面)
  • 3.定义一个方法,对输入和注册的用户进行判断
    • 循环遍历数组,获取每个用户名
    • 使用用户名和输入佛如用户名进行比较
      • true:用户已经存在,抛出异常,告诉用户该用户已经存在
      • false:继续遍历比较
    • 如果循环结束,还没有找到重复的用户名,提示用户注册成功
public class MyException{
    static String[]userNames={"张三","李四","王五"};
    public static void main(String[] args) throws RegisteException {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入要注册的用户名");
        String name = input.nextLine();
        checkName(name);
    }
    public static void checkName(String name) throws RegisteException {
        for (String userName : userNames)
            if (userName.equals(name)) {
                throw new RegisteException("该用户已经被注册");
            }
        System.out.println("注册成功");
    }
//    public static void checkName(String name) {
//        for (String userName : userNames) {
//            if(userName.equals(name)){
//                try {
//                    throw new RegisteException("该用户已经存在");
//                } catch (RegisteException e) {
//                    e.printStackTrace();
//                    return;//一定要加,及时停止程序,防止执行到catch外边的程序
//                }
//            }
//            System.out.println("注册成功");
//        }
//    }

}

在这里插入图片描述
可以看出,上边有两种处理异常的方法,前者是抛出异常,自己不做处理,后者是则是使用try…catch…处理。在这我更推荐前者,这样避免大家出现一下的情况。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值