首页 > 其他分享 >自定义异常和练习自定义异常

自定义异常和练习自定义异常

时间:2022-10-17 10:25:23浏览次数:51  
标签:用户名 自定义 练习 注册 异常 public RegisterException

自定义异常

java中不同的异常类,分别表示着某一种具体的异常情况 那么在开发中总是有些异常情况是SUN没有定义好的

此时我们根据自己业务的异常情况来定义异常类 例如年龄负数,考试成绩负数的问题等

在JDK内部定义好的 但是实际开发中也会出现很多异常 这些异常很有可能在JDK中 没有定义过 我们可以自己定义

什么是自定义异常类:

在开发中根据自己业务的异常情况来定义异常类

自定义一个业务逻辑异常:RegisterException 一个注册异常类

异常类如何定义:

1.自定义一个编译器异常:自定义类 并继承于Exception 归属于java.lang

2.自定义一个运行时期的异常类:自定义类并继承于RuntimeException 归属于java.lang

异常类的格式

public class xxxExcepiton extends Exception{
   添加一个空参数的构造方法
   添加一个带异常信息的构造方法
}

异常类的注意:

1.自定义异常类一般都是以Exception结尾,说明该类是一个异常类

2.自定义异常类 必须的继承Exception或者RuntimeException

  • 继承Exception:那么自定义的异常类就是一个编译器异常 如果方法内部抛出了编译期异常 就必须处理这个异常 要么throws 要么try...catch
  • 继承RuntimeException:那么自定义的异常类就是一个运行期异常 无需处理 交给虚拟机处理(中断处理)

代码:

复制代码
public class RegisterException extends Exception{
    public RegisterException(){
        super();
    }
    public RegisterException(String message){
        super(message);
    }
}
复制代码

自定义异常的练习

要求:我们模拟注册操作 如果用户名已存在 则抛出异常并提示:亲,该用户名已经被注册

分析:

1.使用数组保存已经注册过的用户名

2.使用Scanner获取用户输入的注册的用户名

3.定义一个方法 对用户输入的中注册的用户名进行判断

  • 遍历存储已经注册过用户名的数组 获取每一个用户名
  • 使用获取到的用户名和用户输入的用户名比较
    • true:用户名已经存在,抛出自己定义异常 并告知用户“亲,该用户名已经被注册”;
    • false:继续遍历比较
  • 如果循环结束了 还没有找到重复的用户名 提示用户“恭喜您 注册成功!”          

代码:

异常类:

复制代码
public class RegisterException extends Exception{
    public RegisterException(){
        super();
    }
    public RegisterException(String message){
        super(message);
    }
}
复制代码

测试类:

复制代码
public class test {
    static String[] arr={"张三","李四","王五"};

    public static void main(String[] args) throws RegisterException {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入您要注册的用户名");
        String username = sc.next();
        checkUsername(username);
    }

    public static void checkUsername(String username) throws RegisterException {
        for (String name : arr) {
            if (name.equals(username)){
                throw new RegisterException("亲,该用户名已经被注册");
            }
        }
        System.out.println("恭喜您 注册成功");
    }
}
复制代码

 

标签:用户名,自定义,练习,注册,异常,public,RegisterException
From: https://www.cnblogs.com/shenziyi/p/16798179.html

相关文章

  • 异常的分类
    我们平常说的异常是指Exception因为这类异常一旦出现我们就是对代码进行更正修复程序异常(Exception)的分类:根据在编译时期还是运行时期去检查异常编译时期异常:checke......
  • 异常的处理-抛出异常throw
    抛出异常throw在编写程序时我们必须要考虑程序出现的问题的情况比如在定义方法时方法需要接受在java中提供了一个thow关键字它用来抛出一个指定的异常对象 1.创......
  • 550JDBC各个类详解_ResultSet_遍历结果集 and551 JDBC练习_select语句
    JDResultSetBC各个类详解-ResultSet-遍历结果集Boolean next(): 游标向下移动一行,判断当前行是否是最后一行末尾(是否有数据),如果是,则返回false,如果不是则返回true注......
  • Docker | 自定义网络(网关、子网地址)
    了解dockernetwork通过下面的命令来获取帮助dockernetwork--helpCommands:connectConnectacontainertoanetworkcreateCreateanetwork......
  • Java中的异常
    Java中的异常 try(  //监控区域,把可能出现异常的代码放到这里面)catch(想要捕获的异常的类型 定义个名字){  捕获到异常后进行的操作。}finally{  不管有......
  • 四、WinUI3下TitleBar的自定义
    WinUI3下TitleBar的自定义对于Windows软件开发者来说重写标题栏样式是一个很重要的事情,在WPF阶段很多人写出来性能很差的窗口,而且为了适配Win11系统的Snaplayout后性能就......
  • python新类似乎违背了广度优先的执行顺序, 对象自定义计数实例化的多少
    classTSSS():deff1(self):print('fromTSSS')classSSS(TSSS):deff1(self):print('fromSSS')classSS():deff1(self):......
  • 关于java项目中常用的异常处理情况
    在java语言中,将程序执行中发生的不正常情况成为“异常”,在开发过程中的语法错误或者逻辑错误不算异常。而常见的运行异常可以分为以下几种:输入不匹配异常,报错信息为InputM......
  • 548JDBC练习_update、DDL语句和549JDBC各个类详解_ResultSet_基本使用
    JDBC练习_update and DDL语句//删除数据库内容语句//导入jar包publicstaticvoidmain(String[]args){Connectionconn=null;S......
  • Linux专项练习
    grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是GlobalRegularExpressionPrint,表示全局正则表达式版本,它的使用权限是......