自定义的异常、自定义异常类的练习

自定义的异常

  自定义异常:java提供的异常类,不够我们使用,需要自定一些异常类

格式:public class xxxExcepiton extends Exeption / RuntimeExcetion

  添加一个空参数的构造方法

  添加一个带异常信息的构造方法

注意:自定义异常类一般都是Excetion结尾,说明该类时一个异常类

   自定义异常类,必须的继承Excetion或者RuntimeExcetion

    继承:Excetion,那么自定义异常就是一个编译期异常,如果方法内部抛出编译期异常就必须处理这个异常要不throws要不 try...catch

    继承:RuntimeExcetion那么自定义的异常类就是一个运行期的异常,无需处理,交给虚拟机处理

案例:

  


public class Ex3 extends Exception {
// 添加一个空参数的构造方法
public Ex3(){
super();
}

}

自定义异常类的练习

要求:我们模拟注册,如果用户存在,则抛出异常提示:亲,该账户已经存在;
  分析:使用数组,保存经过注册过的用户名

  使用Scanner获取用户输入的注册用户

  定义一个方法,对用户输入的用户名字进行判断

  遍历已经注册过用户名的数组,获取每一个用户名

  使用获取的用户名和用户输入的用户名比较进判断

    true:用户名字已经存在,抛出RuntimeExcetion异常,告知:该用户已经被注册

    false:继续遍历比较

  如果循环结束了,还是没有找到重复的 那么是提示:注册成功!

案例:

  

public class LianxiEx {
// 先定义已经被注册过的
static String[] arr ={"张三","李四","王五"};

public static void main(String[] args) throws ReflectiveCopyException {
System.out.println("输入的用户名:");
Scanner sc = new Scanner(System.in);
String next = sc.next();
cha(next);
}
public static void cha(String username) throws ReflectiveCopyException {
for (String s : arr) {
if (s.equals(username)) {

throw new ReflectiveCopyException("该户已经存在!");
}
}
System.out.println("注册成功!");
}
}

看打印输出:

  

 

 

 在输入一个没有被注册过的: 

  

 

posted @ 2022-07-08 15:16  一位程序袁  阅读(49)  评论(0编辑  收藏  举报