自定义异常(实现登录)

文章介绍了在Java中如何自定义异常,特别是在处理用户登录功能时,如果出现用户名或密码错误,通过创建`UserNameError`和`PasswordError`类扩展异常处理。自定义异常类通常继承自`Exception`或`RuntimeException`,分别对应受查异常和非受查异常。在登录示例中,当用户名或密码不正确时,会抛出自定义异常。
摘要由CSDN通过智能技术生成

目录

异常:在Java中,将程序执行过程中发生的不正常行为称为异常。

为什么要自定义异常呢?

实现异常:用户登录功能


前言:在写自定义异常之前, 我们要先简单了解何为异常,为什么要自定义异常?

异常:在Java中,将程序执行过程中发生的不正常行为称为异常。

例如:算术异常,数组越界异常,空指针异常

异常也分为编译时异常受检查异常)和运行时异常非受检查异常)两种!

为什么要自定义异常呢?

在Java中,虽然已经内置了丰富的异常类,但是我们实际开发中还会遇到更多的异常,这时就需要维护符合我们实际情况的异常结构。

实现异常:用户登录功能

public class Login{
    private static String userName="me";
    private static String Password="123456";
    
    public static void loginInfo(String userName,String password){
        if(!userName.equals(userName)){
            
        }
        if(!password.equals(password)){
            
        }
        System.out.println("登录成功");
    }

    public static void main(String[] args) {
        loginInfo("me","123456");
    }
}

在处理时,可能会出现用户名出错,或者密码出错两种异常,可以对已有的异常类进行拓展,创建和我们相关的异常类

具体方式:1.自定义异常类,继承自Exception或者RunTimeException

                   2.实现一个带有String类型参数的构造方法,参数含义:出现异常的原因

import sun.security.util.Password;

import javax.lang.model.element.NestingKind;
import java.util.Scanner;

class UserNameError extends Exception{
    public UserNameError(String message){
        super(message);
    }
}
class PasswordError extends Exception{
    public PasswordError(String message){
        super(message);
    }
}
public class Login {
    private static String userName="me";

    private static String Password="123456";

    public static void loginInfo(String user,String password)throws UserNameError,PasswordError{

        if(!user.equals(userName)){
                throw new UserNameError("用户名错误");
            }
            if(!password.equals(Password)){
                throw new PasswordError("密码错误");
            }
            System.out.println("登录成功");

    }

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String user=sc.nextLine();
        String password=sc.nextLine();
        try {

            loginInfo(user,password);

        } catch (UserNameError e) {
            e.printStackTrace();


        } catch (PasswordError e) {
            e.printStackTrace();
        }

    }


}

运行结果:

 

 

注意:自定义异常通常会继承Exception或者RuntimeException

           继承自Exception的异常默认是受查异常

           继承自Runtime Exception的异常默认是非受查异常

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值