package com.chunzhi.Test04MyException;
import java.util.Scanner;
/*
要求:模拟注册操作,如果用户名已存在,则抛出异常并提示:亲,该用户名已经被注册。
分析:
1.使用数组保存已经注册的用户
2.使用Scanner获取用户注册的昵称
3.定义一个方法判断用户名是否存在
遍历储存已经注册过的用户名数组与用户输入的用户名进行比较
存在:报异常提示
循环结束了没找到相同的用户名,提示:恭喜你,注册成功!
*/
public class Test01RegisterException{
// 1.使用数组保存已经存在的用户
static String[] usernames = {"迪丽热巴", "古力娜扎", "高圆圆"};
public static void main(String[] args) throws RegisterException{
// 2.使用Scanner获取用户注册的昵称
Scanner sc = new Scanner(System.in);
System.out.println("请输入,您要注册的昵称:");
String username = sc.next();
checkUsername(username);
}
// 3.定义一个方法判断用户名是否存在
public static void checkUsername(String username) throws RegisterException {
// 遍历储存已经注册过的用户名数组与用户输入的用户名进行比较
for (String name : usernames) {
if (name.equals(username)) {
// 存在:报异常提示
throw new RegisterException("亲,该用户名已经被注册");
}
}
// 循环结束了没找到相同的用户名,提示:恭喜你,注册成功!
System.out.println("恭喜你,注册成功!");
}
}
package com.chunzhi.Test04MyException;
/*
自定义异常类:
java提供的异常类,不够我们使用,需要自己自定义一些异常类
格式:
public class XXXException extends Exception或者继承RuntimeException {
添加一个空参数的构造方法
添加一个带异常信息的构造方法
}
注意:
1.自定义异常类一般都是以Exception结尾,说明该类是一个异常类
2.自定义异常类,必须要继承Exception或者RuntimeException
继承Exception:那么自定义的异常类就是一个编译器异常,如果方法内部抛出了编译期异常,就必须处理这个异常,要么throws,要么try...catch
继承RuntimeException:那么自定义的异常类就是一个运行期异常,无需处理,交给JVM虚拟机处理(虚拟机中断处理)
*/
public class RegisterException extends Exception {
// 添加一个空参数的构造方法
public RegisterException() {
}
// 添加一个带异常信息的构造方法
public RegisterException(String message) {
super(message);
}
}