Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常,此时就需要维护符合我们实际情况的异常结构.
例如:我们实现一个用户登录功能
【注意事项】
- 自定义异常通常会继承自 Exception 或者 RuntimeException
- 继承自 Exception 的异常默认是受查异常
- 继承自 RuntimeException 的异常默认是非受查异常
密码异常类
public class PasswordError extends Exception {
public PasswordError(String message){
super(message);
}
}
用户名异常类
public class UserError extends Exception{
public UserError(String message){
super(message);
}
}
用户登录
public class UserLogin {
private static String userName = "123";
private static String passerWord = "123456";
public static void main(String[] args) throws UserError, PasswordError {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入用户名:");
String name=scanner.nextLine();
System.out.println("请输入密码:");
String key=scanner.nextLine();
login(name,key);
}
private static void login(String userName, String passerWord) throws PasswordError, UserError {
if (!UserLogin.userName.equals(userName)){
throw new UserError("用户名错误");//抛出用户名错误异常
}
if (!UserLogin.passerWord.equals(passerWord)){
throw new PasswordError("密码错误");//抛出密码错误异常
}
System.out.println("登录成功");
}
}
具体方式: 1. 自定义异常类,然后继承自Exception 或者 RunTimeException 2. 实现一个带有String类型参数的构造方法,参数含义:出现异常的原因 ?
|