java学习记录18

本文介绍了如何在Java中自定义异常类来处理特定场景,如密码验证,以及如何通过`throw`和`catch`来控制程序流程,确保程序稳定性。
摘要由CSDN通过智能技术生成

java自定义异常类

在我们自己编写程序的时候,我们常常需要对自己程序添加一些限制,以保证程序整体的稳定,我们知道java有异常处理机制,可以检测到我们代码的异常,并在运行遇到异常时终止运行,或进行一些措施,保护我们的程序稳定性,不会因为异常而崩溃。java编辑工具所提供的java异常处理机制是java工具的开发者在开发过程中,考虑到在我们编程中常见的异常情况,设置异常类,来保护我们的代码,它只会提供基本的异常处理。而我们在编写自己的程序时也需要对使用我们程序的人的操作进行限制,以保护我们的程序正常运行,我们可以自定义异常类来实现对程序的保护。

以实例来说,我们在注册用户时需要输入密码,密码的位数和大小写都会有限制,如果不按规则输入就会注册失败,以此保证不会因为程序接收一个过长的秘密导致出现错误,甚至系统的崩溃。我们可以用自定义异常类来实现这一点。

1、首先我们要创建一个异常类,自定义异常类一般都是编译异常,以java自带的Exception为父类。

public class UserPasswordException extends Exception{
    public UserPasswordException() {
        super();
    }
    public UserPasswordException(String message) {
        super(message);
    }
}

2、然后我们定义这个异常出发的条件

public void Password(String password){
        if(password.length() < 6 || password.length() > 10){
            throw new UserPasswordException("密码位数错误");
        }
        else {
            System.out.println("注册成功");
        }
    }

在这一步要注意当我们这样编写后系统会提示我们,要我们对UserPasswordException进行异常处理否则就无法运行,我们有两种选择try…catch捕捉,或者上抛异常。两种都可以解决问题,但我们这应当用thows上抛,因为在实际编程中,我们编写的程序不是我们自己使用,我们设置的异常类是不会展示出来的,所以如果我们在内部就直接捕捉处理掉异常,那么用户是无法了解的,我们设置异常就没有用处了,所以我们用thows上抛。

public void Password(String password)throws UserPasswordException{
        if(password.length() < 6 || password.length() > 10){
            throw new UserPasswordException("密码位数错误");
        }
        else {
            System.out.println("注册成功");
        }
    }

3、用户数据的输入

在设置好异常类后就可以设置用户数据输入了

public static void main(String[] args)throws UserPasswordException{
        userpassword e = new userpassword();
            e.Password("6252559662556");
    }
Exception in thread "main" live.csd.FACTORY.UserPasswordException: 密码位数错误
	at live.csd.FACTORY.userpassword.Password(userpassword.java:6)
	at live.csd.FACTORY.exceptional.main(exceptional.java:12)

Process finished with exit code 1

可以看到当我们密码位数不在6到10这个范围内就会打断运行,并提示设置好的异常。

我们可以不在main方法中上抛用try…catch捕捉处理,输入错误密码,程序就不会打断继续运行,我们可以设置自己像输出的提示语句。

public static void main(String[] args){
        userpassword e = new userpassword();
        try {
            e.Password("6252559662556");
        }catch (UserPasswordException E){
            System.out.println("密码格式错误请重新输入");
        }
        System.out.println("程序继续进行");
    }
密码格式错误请重新输入
程序继续进行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值