自定义异常 实现登录

实现一个简单的控制台版用户登陆程序, 程序启动提示用户输入用户名和密码. 如果用户名或密码出错, 使用自定义异常的方式来处理

异常类之间的关系:

  • 顶层类 Throwable 派生出两个重要的子类:Error 和 Exception
  • Error 指的是 Java 运行时内部错误和资源耗尽错误,应用程序不抛出此类异常,一旦出现,除了告知用户并使程序终止之外,再无能无力,这种情况很少出现
  • Exception 是我们程序猿所使用的异常类的父类,其中 Exception 有一个子类称为 RuntimeException , 这里面又派生出很多我们常见的异常类,比如NullPointerException,IndexOutOfBoundsException 等
  • Java将派生于 Error 类或 RuntimeException 类的所有异常称为非受查异常,所有的其他异常称为受查异常,如果一段代码可能抛出受查异常,那么必须显式进行处理。

自定义异常:

  • 自定义异常通常会继承自 Exception 或者 RuntimeException
  • 继承自 Exception 的异常默认是受查异常
  • 继承自 RuntimeException 的异常默认是非受查异常

 举个例子:

import java.util.Scanner;

public class logTest {
    private static String userName = "gezi";
    private static String password = "123456";

    public static void main(String[] args) {
        try{
            Scanner scanner=new Scanner(System.in);
            System.out.println("请输入用户名:");
            String name = scanner.next();
            System.out.println("请输入密码:");
            String password = scanner.next();
            login(name,password);
        }catch (UserError userError){
            userError.printStackTrace();
        }catch (PasswordError passwordError){
            passwordError.printStackTrace();
        }
    }

    public static void login(String userName, String password) throws UserError, PasswordError {
        if (!logTest.userName.equals(userName)) {
            throw new UserError("用户名错误");
        }
        if (!logTest.password.equals(password)) {
            throw new PasswordError("密码错误");
        }
        System.out.println("登陆成功");
    }
}

//自定义异常类
public class PasswordError extends Exception{
    public PasswordError(String message) {
        super(message);
    }
}

//自定义异常类
public class UserError extends Exception{
    public UserError(String message) {
        super(message);
    }
}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值