首页 > 编程知识 正文

Java自定义异常类,Java自定义异常案例动画

时间:2023-05-04 04:15:42 阅读:231108 作者:1854

自定义异常:

java提供的异常类,不够我们使用,需要自己定义一些异常类

格式:

       public class XXException extends Exception|RuntimeException{

          添加一个空参数的构造方法

          添加一个带异常信息的构造方法

}

注意:

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

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

              继承Exception:那么自定义的异常类就是一个编译期异常,如果出现了编译期异常就必须处理,要么throws ,要么try catch

              继承RuntimeException:那么自定义的异常就是一个运行期异常,无需处理,交给虚拟机处理,中断处理。

 

 

练习:我们模拟用户操作,如果已经存在该用户就提示错误,如果没有存在就提示成功了

 

分析:

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

2.使用Scanner获取用户输入的注册的用户名(前端,页面)

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

      遍历已经注册的用户名数组,获取每一个用户名

      使用获取到的用户名和用户输入的用户名比较

      true:

           用户名已经存在,抛出RegisterException异常,告知用户“亲,该用户名已经被注册”

     false:

           继续遍历数组

      如果循环结束了,还没有找到重复的用户名,提示用户“恭喜您,注册成功!”

自定义MyException类

扩展Exception接口,可以自定义输出的语句

package test;import java.util.Scanner;public class MyException extends Exception{//添加一个空参数的构造方法public MyException() {super();}//添加一个带异常信息的构造方法//查看源码发现,所有异常类都会有一个带异常信息的构造方法,方法内部调用父类异常信息的构造方法,//让父类处理public MyException(String message){super(message);}}


 

package test;import java.util.Scanner;public class DemoMyException {static String[] s = {"风中的夏天","tldqb","nqdwl"};public static void main(String[] args) throws Exception{System.out.println("请输入用户名:");Scanner sc = new Scanner(System.in);String user = sc.next();checkName(user);}public static void checkName(String username) throws MyException{for(String name: s){if(username.equals(name)){throw new MyException("亲,该用户名已经被注册了!");}}System.out.println("恭喜您,注册成功!");}}

这里是Exception编译异常,所以必须要处理,因此在checkName里面会throw抛给原MyException类处理

2.如果是Extends runtimeException 可以不用throw 直接给JVM处理,如下图

 

 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。